java注解小总结

1:从jdk1.5以后就开始出现注解了,主要有@override @depredate @supressWarning
2:怎么样生成一个注解呢?
注解个普通的接口一样,多的就是仅仅是多添加了一个@,类似
public @interface Test{
public void value() default "this is frist annation";
}
注意:注解里面可以由方法组成也可以有枚举组成等!
3:注解可以声明在类上面,也可以声明在方法上面,当然也可以声明在属性上面,可以通过@targer来表示
@targer(ElementType.Construct)//在构造器上面进行声明
ElementType.Field //在属性上面进行声明
ElementType.Method//在方法上面进行声明
ElementType.Type //在类上面进行声明
4:注解也有声明周期,可以在编译的时候有效,也可以在jvm中有效,当然也可以在class文件中有效,主要通过
@Retention 来表示
RetentionPolicy.Source //注解将被编译器放弃,
RetentionPolicy.CLASS //注解被虚拟机放弃
RetentionPolicy.RUNTIME //注解即保存在jvm也保存在class文件等
5:@Documented 表示生产的 javadoc文档中是否也看到注解的说明
6:@Inherited 表示注解是否可以被继承,如果写上了,当前类被注解的时候,子类也拥有了这个注解

5:实现一个简单的注解
@Target(ElementType.Method)
@Rettention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface Test{
public void value() default "this is first annation";
}

public class TestAnnation{
@Test(value="this is second annation")
public void test(){
System.out.println("asfads");
}
注解解析原理:主要是通过反射机制,找到当前类,在判断当前类是否有注解!
public static void main(Stringp[] args){
Method[] method = Test.class.getDeclaredMethods();
for(Method m:method){
boolean flag = method.isAnnationPresent(Test);
if(flag){
Test t = method.getAnnation(Test.class);
System.out.println("annnation name"+t.getName+"value:"+t.Value());
}

}

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值