一.
几个常见Annotation的举例
/**
* 标示方法过时的注解
* */
public class DeprecatedTest {
@Deprecated
public void doSomething() {
System.out.println("do something");
}
public static void main(String[] args) {
DeprecatedTest test = new DeprecatedTest();
test.doSomething();
}
}
/**
* 标示子类重写父类方法的注解
* */
public class OverrideTest {
@Override
public String toString() {
return "This is override";
}
public static void main(String args[]) {
OverrideTest test = new OverrideTest();
System.out.println(test.toString());
}
}
二.
自己创建Annotation,并使用
/**
* 创建注解<br>
* Annotation中的属性........如果在Annotation中定义一个String value(),<br>
* 那么你在使用的时候就不用指定value,而可以直接写一个字符串(值).<br>
* 而其它的属性,在使用的时候就必须指定属性名并赋值(String value1()---------------value1=" ")
* */
public @interface AnnotationTest {
String value() default "world";//赋默认值
EnumTest value2();
}
enum EnumTest {
Hello, Wrold, Welocome
}
import java.util.HashMap;
import java.util.Map;
@AnnotationTest(value2 = EnumTest.Hello)
public class SuppressWarningsTest {
@SuppressWarnings( { "deprecation", "unchecked" })
// 抑制警告信息的注解
public static void main(String args[]) {
Map map = new HashMap();
map.put("hello", "world");
System.out.println(map.get("hello"));
DeprecatedTest test = new DeprecatedTest();
test.doSomething();
}
}
三.
Annotation中的属性........
如果在Annotation中定义一个String value(),那么你在使用的时候就不用指定value,而可以直接写一个字符串(值)而其它的属性,在使用的时候就必须指定属性名并赋值(String value1()---------------value1=" ")
四.
Annotation中只能定义的属性类型:
原生类型、字符串类型、class、annotation、枚举类型、以及它们相应的一维数组五.
String value() default "world";在annotation中给属性赋默认值