import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)//此注解只可以用在成员属性上
@Retention(RetentionPolicy.RUNTIME)//此注解可以被反射
public @interface PhoneAnnotation {
String remarks() default "";//备注
boolean enable() default true;//属性是否启用
}
public class cellphone {
@PhoneAnnotation(remarks="品牌型号")
public String brdmdi;//品牌型号
@PhoneAnnotation(remarks="价格")
public double price;//价格
@PhoneAnnotation(remarks="电池接口",enable=false)
public String batteryInter;//电池接口
@PhoneAnnotation(remarks="手机厂商")
String produceArea;//手机厂商
}
import java.lang.reflect.Field;
public class demo4 {
public static void main(String[] args) {
Class c=cellphone.class;
Field fs[]=c.getDeclaredFields();
for(Field f:fs) {
if(f.isAnnotationPresent(PhoneAnnotation.class)) {
PhoneAnnotation p=f.getAnnotation(PhoneAnnotation.class);
System.out.print(f.getName()+"属性的注解内容为:");
System.out.print("备注="+p.remarks());//返回注释中的备注内容
System.out.println(",属性是否有效"+p.enable());//返回属性是否有效
}
}
}
}