erface 注解名{
? 数据类型 属性名() default 默认值;
? //如果没有设置默认值,那么在使用该注解时必须为该属性指定值。
}
数据类型可以用哪些类型: 基本类型[8个] 字符串类型 上面这些类型的数组
//自定义注解
@Target(value= {ElementType.TYPE,ElementType.METHOD,ElementType.FIELD,ElementType.PARAMETER}) //My注解只能使用在类和方法上.默认可以在任何位置使用
@Retention(value = RetentionPolicy.RUNTIME) //这个使用最多。运行有效 Source--->Class--->Runtime 默认在字节码生效
@interface My{
String value() default "";
int age() default 18;
String[] hobby() default {};
}
//如果只为value赋值,那么可以省略value属性名
@My(value = "Hello") //给定的数组值只有一个那么可以省略{},如果数组值有多个必须给定{}.
class Hello{
private String name;
public void show( String n){
System.out.println("~~~~~~~~~~~~~~~~~~~"+n);
}
}