java反射机制 怎样获取到类上面的注解

newMaterials().getClass().getAnnotations();这样写为什么不对呀都获取不出来... new Materials().getClass().getAnnotations(); 这样写为什么不对呀都获取不出来 展开
 我来答
仙戈雅3n
2017-10-09 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:894万
展开全部
// 定义注解并指定java注解保留策略为运行时RUNTIME,运行时注入到JAVA字节码文件里
// 这样才可以在运行时反射并获取它。
@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@interface MyAnnotation{
String key() default "";
int value()  default 0; 
}

// 使用注解
@MyAnnotation(key="key1",value=200)
class MyClass{}

// 反射注解
public static void main(String[] args){
   MyClass myClass=new MyClass();
   MyAnnotation annotation=myClass.getClass().getAnnotation(MyAnnotation.class);
   System.out.println("key="+annotation.key()+"\tvalue="+annotation.value());
}
匿名用户
2017-10-09
展开全部
Annotation[]
getAnnotations()Returns all annotations present on this element.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
顶级抱枕
2017-10-09 · 超过10用户采纳过TA的回答
知道答主
回答量:77
采纳率:36%
帮助的人:13.5万
展开全部
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface asd {

String getUserName();
}

@asd(getUserName="zhangsan")
public class Test {
public static void main(String[] args) {

asd anno = Test.class.getAnnotation(asd.class);
if(anno != null){
Method[] met = anno.annotationType().getDeclaredMethods();
for(Method me : met ){
if(!me.isAccessible()){
me.setAccessible(true);
}
try {
System.out.println(me.invoke(anno, null));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虚无_内守
2018-05-13 · 超过13用户采纳过TA的回答
知道答主
回答量:35
采纳率:70%
帮助的人:14.8万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qu13846540
2017-10-09
知道答主
回答量:30
采纳率:0%
帮助的人:9万
展开全部
你这个太深奥了 我没法接
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式