您的位置:首页 > 职场人生

黑马程序员_JAVA注解学习笔记

2014-03-13 14:56 232 查看
------- 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培训、期待与您交流! ----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: