注解:也是jdk1.5的一个新特性,是一种标记,一种说明,可以在包,类,方法,参数,成员变量等对象或成员之前声明,javac编译器,开发工具和其它程序可以用反射来了解类及各种元素上是否有某种标记,不同的标记响应不同的事件
注解对象或成员已经过时:加 @SuppressWarnings("deprecation")
注解对象或成员过时:加 @Deprecated
注解对象或成员覆盖了其他对应对象或成员:加@Override
注解相当于特殊的类,需要编写
元注解:注解的注解;同理:元信息,元数据类似
元注解 @Retention 三种取值:
RetentionPolicy.RUNTIME;RetentionPolicy.SOURCE ; RetentionPolicy.class
Java中字符串没单引号
这俩天学习的反射跟注解有点听天书的感觉,没有java基础,能力有限,理解程度有限,跟着张老师敲了一遍代码,放到这里供以后复习参考。
以下为教程中注解实例代码:
package cn.itcast.day2;
@ItcastAnnotation(color="red",value="123",arrayAttr={1,2,3})
public class AnnotationTest {
@SuppressWarnings("deprecation")
@ItcastAnnotation("xxx")
public static void main(String[] args) {
System.runFinalizersOnExit(true);
if(ItcastAnnotation .class.isAnnotationPresent(ItcastAnnotation.class)){
ItcastAnnotation annotation=ItcastAnnotation .class.getAnnotation(ItcastAnnotation .class);
System.out.println(annotation.color());
System.out.println(annotation.value());
System.out.println(annotation.arrayAttr().length);
}
}
@Deprecated
public static void sayHello(){
System.out.println("hi,传智播客");
}
}
package cn.itcast.day2;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)//元注解:注解的注解;同理:元信息,元数据类似
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface ItcastAnnotation {
String color() default "bule";
String value();
int[] arrayAttr() default {3,4,5};
}