Java的注解问题,如何获得一个方法上加的注解?
怎么得到一个方法的注解?不是用method.getAnnotation(Xxx.class)么?(method是某个方法,Xxx是某个注解),我调用时候返回null,肯定...
怎么得到一个方法的注解?不是用method.getAnnotation(Xxx.class)么?(method是某个方法,Xxx是某个注解),我调用时候返回null,肯定是API用错了,但不知到怎么用,请大家帮忙!!
下面是我的程序的精简版:
我想通过一个在类的方法上加入注解然后在别的类中调用这个类的方法
如我的加注解的类如下:
在包com.xxx.annotation下
public class A {
@Test
public void function1() {
System.out.println("in function1");
}
}
在另一个程序构造方法中接收一个String参数(指明类A的路径:com.xxxx.annotation.A)。
public class B {
//str represents com.xxx.annotation.A
public B(String str) {
this.str = str;
}
public void testAnnotation() {
Class<?> classType = Class.forName(str);
Method m = classType.getDeclaredMethod("function1", new Class[]{});
//这里返回的是一个null
m.getAnnotation(Test.class);
}
}
小弟注解没有学透彻啊,希望大家帮忙!! 展开
下面是我的程序的精简版:
我想通过一个在类的方法上加入注解然后在别的类中调用这个类的方法
如我的加注解的类如下:
在包com.xxx.annotation下
public class A {
@Test
public void function1() {
System.out.println("in function1");
}
}
在另一个程序构造方法中接收一个String参数(指明类A的路径:com.xxxx.annotation.A)。
public class B {
//str represents com.xxx.annotation.A
public B(String str) {
this.str = str;
}
public void testAnnotation() {
Class<?> classType = Class.forName(str);
Method m = classType.getDeclaredMethod("function1", new Class[]{});
//这里返回的是一个null
m.getAnnotation(Test.class);
}
}
小弟注解没有学透彻啊,希望大家帮忙!! 展开
2个回答
展开全部
你没有给类加注解,你只是给方法加入注解了。
你需要给给类加上,通过类注解在去找方法注解。
你需要给给类加上,通过类注解在去找方法注解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
朋友,这个方法 :m.getAnnotation(Test.class);是取注解的类参数成员值。 为class A这个类注解时@Test 是一个marker annotation,也就是说没有参数成员的注解类。所以你是不可能通过这个方法取得注解成员值的。 呵呵,所以给你返回一个null是肯定的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询