黑马程序员_JAVA注解学习笔记
2014-03-13 14:56
232 查看
------- android培训、java培训、期待与您交流! ----------
一、注解部分
1、注解(Annotation):一个注解本质上是一个类。
2、JDK基本注解(3个):
@SuppressWarnings("deprecation")://压缩"过时"
@Deprecated://声明过时
@override://覆盖
3、自定义注解类:
3.1 注解类
3.2 应用了注解类的类
3.3 对应用了注解类的类”进行反射操作的类
4、注释保留策略
说明注解的生命周期。
@Retention(RetentionPolicy.RUNTIME)
分为:
RetentionPolicy.SOURCE //编译器要丢弃的注释。
RetentionPolicy.CLASS //编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释。
RetentionPolicy.RUNTIME //编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。
5、程序元素类型
指定在什么情况下使用注释类型是合法的。
@Target({ElementType.METHOD,ElementType.TYPE})
6、注解设置值
1)基本标签:
定义,eg:
使用,eg:
@CbyAnnotation(color="red",value="hello")
注:当注解中只有value属性,或者除value外的其他属性都存在默认值时,可以用以下方式调用
2)标签中的数组属性:
@CbyAnnotation("hello")
数组属性的使用,eg:
@CbyAnnotation(array={"hello","hello2"},value="hello")
@CbyAnnotation(array="hello",value="hello")
//<--这里的数组array中的属性只有一个元素
3)标签中的枚举属性
定义,eg:
TrafficLamp getLamp() default TrafficLamp.RED;
4)标签中的标签属性
定义,eg:
MetaAnnotation annotationAttr() default @MetaAnnotation("hello");
使用,eg:
@CbyAnnotation(value="hello",annotationAttr=@MetaAnnotation("hello"))
------- android培训、java培训、期待与您交流! ----------
一、注解部分
1、注解(Annotation):一个注解本质上是一个类。
2、JDK基本注解(3个):
@SuppressWarnings("deprecation")://压缩"过时"
@Deprecated://声明过时
@override://覆盖
3、自定义注解类:
3.1 注解类
@interface A { //注解类中的抽象方法声明等 }
3.2 应用了注解类的类
@A Class B { //实际Class中的实现 }
3.3 对应用了注解类的类”进行反射操作的类
Class C { B.class.isAnnotationPresent(A.class); B.class.getAnnotation(A.class); }
4、注释保留策略
说明注解的生命周期。
@Retention(RetentionPolicy.RUNTIME)
分为:
RetentionPolicy.SOURCE //编译器要丢弃的注释。
RetentionPolicy.CLASS //编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释。
RetentionPolicy.RUNTIME //编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。
5、程序元素类型
指定在什么情况下使用注释类型是合法的。
@Target({ElementType.METHOD,ElementType.TYPE})
6、注解设置值
1)基本标签:
定义,eg:
@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD,ElementType.TYPE}) public @interface CbyAnnotation { String color() default "blue"; //<--指定默认属性 String value(); String[] array(); }
使用,eg:
@CbyAnnotation(color="red",value="hello")
注:当注解中只有value属性,或者除value外的其他属性都存在默认值时,可以用以下方式调用
2)标签中的数组属性:
@CbyAnnotation("hello")
数组属性的使用,eg:
@CbyAnnotation(array={"hello","hello2"},value="hello")
@CbyAnnotation(array="hello",value="hello")
//<--这里的数组array中的属性只有一个元素
3)标签中的枚举属性
定义,eg:
TrafficLamp getLamp() default TrafficLamp.RED;
4)标签中的标签属性
定义,eg:
MetaAnnotation annotationAttr() default @MetaAnnotation("hello");
使用,eg:
@CbyAnnotation(value="hello",annotationAttr=@MetaAnnotation("hello"))
------- android培训、java培训、期待与您交流! ----------
相关文章推荐
- 黑马程序员 java学习笔记——注解
- 黑马程序员_java基础加强学习笔记之注解
- 黑马程序员——学习笔记18.Java注解
- 黑马程序员_Java注解学习笔记
- 黑马程序员-java学习笔记-注解
- 【黑马程序员】 学习笔记 - Java新技术 - 注解
- 黑马程序员_Java学习笔记之7K面试题交通等管理系统
- Java 注解学习笔记
- 黑马程序员_java基础学习笔记09_IO流
- 黑马程序员——java学习笔记--枚举
- 黑马程序员-学习笔记java基础-语言概述
- 黑马程序员--Java基础加强学习笔记之重载和覆写、可变参数、枚举
- 黑马程序员————java代理学习笔记
- 黑马程序员---Java学习笔记之io2
- 黑马程序员_JAVA 学习笔记18 WEB篇5
- 黑马程序员_JAVA 学习笔记29 WEB篇16
- 黑马程序员-java基础学习笔记第二篇
- 黑马程序员-java基础学习笔记第二篇
- 黑马程序员--java基础学习笔记3
- 黑马程序员_毕向东_Java基础视频教程学习笔记(四)