Java的注解总结
来源:互联网 发布:查看淘宝关键词搜索量 编辑:程序博客网 时间:2024/05/18 20:45
注解的知识结构图(别人总结的)
一个注解demo,分别定义3个注解
import java.lang.annotation.Documented;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)@Documentedpublic @interface VehicleName {String value() default "";}
import java.lang.annotation.Documented;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)@Documentedpublic @interface VehicleColor {public enum VColor{RED,BLUE,GREEN,BLACK}VColor vehicleColor() default VColor.BLACK;}
import java.lang.annotation.Documented;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)@Documentedpublic @interface VehicleProvider {public int id() default -1;public String name() default "";public String phone() default "";}
使用注解的类
import ww.VehicleColor.VColor;public class Bicycle {@VehicleName("捷安特")private String bicycleName;@VehicleColor(vehicleColor=VColor.BLUE)private String bicycleColor;@VehicleProvider(id=101,name="Vehicle Store",phone="123456")private String vehicleProvider;public String getBicycleName() {return bicycleName;}public void setBicycleName(String bicycleName) {this.bicycleName = bicycleName;}public String getBicycleColor() {return bicycleColor;}public void setBicycleColor(String bicycleColor) {this.bicycleColor = bicycleColor;}public String getVehicleProvider() {return vehicleProvider;}public void setVehicleProvider(String vehicleProvider) {this.vehicleProvider = vehicleProvider;}}
注解处理器
import java.lang.reflect.Field;public class VehicleInfoUtil {public static void getVehicleInfo(Class<?> clazz){String vehicleName = "vehicle name:";String vehicleColor = "vehicle color:";String vehicleProvider = "vehicle Provider:";// 返回直接存在于此元素上的所有注释。与此接口中的其他方法不同,该方法将忽略继承的注释。Field[] fields = clazz.getDeclaredFields();for(Field field:fields){// 判断该程序元素上是否包含指定类型的注解,存在则返回true,否则返回false.if(field.isAnnotationPresent(VehicleName.class)){VehicleName name = (VehicleName)field.getAnnotation(VehicleName.class);vehicleName = vehicleName + name.value();System.out.println(vehicleName);}else if(field.isAnnotationPresent(VehicleColor.class)){VehicleColor color = (VehicleColor)field.getAnnotation(VehicleColor.class);vehicleColor = vehicleColor + color.vehicleColor().toString();System.out.println(vehicleColor);}else if(field.isAnnotationPresent(VehicleProvider.class)){VehicleProvider provider = (VehicleProvider)field.getAnnotation(VehicleProvider.class);vehicleProvider = vehicleProvider + "Id:"+provider.id()+" Name:"+provider.name()+" Phone:"+provider.phone() ;System.out.println(vehicleProvider);}}}}
执行类
public class VehicleApp {/** * @param args */public static void main(String[] args) {VehicleInfoUtil.getVehicleInfo(Bicycle.class);}}
0 0
- Java的注解总结
- java注解-->总结
- java总结(18)注解
- JAVA注解总结
- JAVA注解总结
- Java 注解总结
- Java注解总结
- java注解总结
- 学习java 注解总结.
- Java注解总结
- 【java总结】注解Annotation
- java注解总结
- java注解总结
- java中的注解总结
- java,spring 注解总结
- Java注解知识点总结
- Java 注解总结
- Java 注解总结
- 计算机网络基本用语概括
- JS实现漂亮的淡蓝色滑动门效果代码
- Environment类;logcat的作用
- 捕捉异常(3)
- 插播一条关于Socket编程的小程序,
- Java的注解总结
- 爬楼梯
- ubuntu press S to skip
- 【数据结构】中缀表达式的实现
- 问题
- Nginx location指令匹配顺序规则
- TabLayout中tab.setCustomView的操作
- 算法-找出缺失的整数
- cs231n:SVM线性分类器