Java中注解的使用小结
来源:互联网 发布:外国人 中国微信 淘宝 编辑:程序博客网 时间:2024/06/01 10:09
Java中常用注解
// 重写父类的方法 @Override public String toString() { return super.toString(); } // 抑制编译器警告 @SuppressWarnings({"unused","unchecked"}) private void save() { List list = null; } // 标记方法以及过时 @Deprecated private void save1() { }
自定义一个注解
定义:
- 基本写法
public @interface Author { /** * 注解属性 * 1. 修饰为默认或public * 2. 不能有主体 */ String name(); int age();}
- 带默认值的注解
public @interface Author { /** * 注解属性 * 1. 修饰为默认或public * 2. 不能有主体 */ String name(); int age() default 30; // 带默认值的注解; 使用的时候就可以不写此属性值}
- 默认名称的注解
注解属性名称为value,这就是默认名称public @interface Author { // 如果注解名称为value,使用时候可以省略名称,直接给值 // (且注解只有一个属性时候才可以省略名称) String value();}
使用
@Author(“Jet”)
@Author(value = “Jet”)
- 注解属性类型为数组:
public @interface Author { String[] value() default {"test1","test2"};}
使用:
@Author({“”,“”}) public void save() { }
元注解
元注解用来描述 该注解类使用的范围(类,字段,方法等),以及注解的生命周期
- 元注解Target - 定义注解的可用范围
// 接收一个数组类型@Target({TYPE,//类FIELD , //属性METHOD, //方法PARAMETER, //参数CONSTRUCTOR,//构造函数LOCAL_VARIABLE//局部变量})
- 元注解Rutention - 指定注解的声明周期
@Retention(RetentionPolicy.RUNTIME) // 字节码级别有效
- 源码 @Retention(RetentionPolicy.SOURCE)
- 字节码 @Retention(RetentionPolicy.CLASS)
- 运行时 @Retention(RetentionPolicy.RUNTIME)
一个注解只能声明一个级别
- 使用方式
//@Retention(RetentionPolicy.SOURCE)//@Retention(RetentionPolicy.CLASS)同时写三个会报错@Retention(RetentionPolicy.RUNTIME)@Target({TYPE})public @interface Author {//和接口,枚举 一样 所有的方法 默认 final static public String name() default "格锅"; String value() default "hehe";// 数组 String[] array();}
@Author(name= "测试")public class APP2 { //@Author()在方法上使用该注解 会报错 public void save(){ };}
获取注解信息
@Author(name="类",value="hehe")public class APP2 { @Test public void save() throws Exception{ //拿到类上的注解 Author mA = APP2.class.getAnnotation(Author.class); System.out.println("name = "+mA.name()); }; @Author(name="方法") public void getMethodAnnotiation() throws Exception{// 需要拿到方法// 拿到方法得注解对象 Method gg = APP2.class.getDeclaredMethod("getMethodAnnotiation"); Author mA = gg.getAnnotation(Author.class); System.out.println("name = "+mA.name()); }}
通过注解封装Dao实例
0 0
- Java中注解的使用小结
- java 中注解的使用
- java中注解的使用
- Java中使用注解
- java中注解的使用与实例
- java中注解的使用与实例
- JAVA中注解的简单使用
- Java中注解(Anotation)的使用
- java中注解的使用与实例
- java中注解的使用与实例
- Java中注解的使用与实例
- Android 中Java注解的使用
- java中final的使用小结
- java注解的使用
- Java 注解的使用
- java 注解的使用
- Java注解的使用
- java注解的使用
- 获得文本中最长的一行并打印
- [完]机器学习实战 第二章 k-近邻算法(k Nearest Neighbor)
- Android之ViewPager学习笔记(MVP模式)
- SAR处理方法
- 迅雷2014C++研发笔试卷C解题分析
- Java中注解的使用小结
- ffmpeg将ts解封装为h264和aac文件测试代码
- 进程程序替换
- ERROR: In <declare-styleable> MenuView, unable to find attribute android:preserveIconSpacing
- POJ 1273 两种基本最大流算法
- mysql 基本讲解
- 字符串合法性长度
- 统计数据做成水平直方图
- HDU-5035 Delivery(2014亚洲区北京站网络赛)