《java基础学习之——自定义注解》
来源:互联网 发布:淘宝的一件代发是怎么 编辑:程序博客网 时间:2024/05/16 04:57
在上一篇博客《java基础学习之——注解Annotation》中,从4个W1个H总结了我对注解的一些认识。接下来,我们一起动手来自定义一个注解,怎么样?
一:定义一个水果颜色注解
package com.annotations.test2;import java.lang.annotation.Documented;import java.lang.annotation.Retention;import java.lang.annotation.Target;import java.lang.annotation.ElementType;import java.lang.annotation.RetentionPolicy;/** * 水果颜色注解 * @author * */@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FruitColor { /** * 颜色枚举 * @author peida * */ public enum Color{ BULE,RED,GREEN}; /** * 颜色属性 * @return */ Color fruitColor() default Color.GREEN;}
package com.annotations.test2;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;/** * 水果名称 * @author 贾丽敏 * */@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FruitName {String value() default "";}
三:定义一个水果苹果类,使用以上两个注解:
package com.annotations.test2;import com.annotations.test2.FruitColor.Color;/** * 苹果实体类 * @author 贾丽敏 * */public class Apple {@FruitName("Apple") private String appleName; @FruitColor(fruitColor=Color.RED) private String appleColor; public void setAppleColor(String appleColor) { this.appleColor = appleColor; } public String getAppleColor() { return appleColor; } public void setAppleName(String appleName) { this.appleName = appleName; } public String getAppleName() { return appleName; } public void displayName(){ System.out.println("水果的名字是:苹果"); }}
四:定义一个苹果类解析器:
package com.annotations.test2;import java.lang.reflect.Field;/** * 注解处理器 * @author 贾丽敏 * */public class FruitInfoUtil { public static void getFruitInfo(Class<?> clazz){ String strFruitName=" 水果名称:"; String strFruitColor=" 水果颜色:"; Field[] fields = clazz.getDeclaredFields(); for(Field field :fields){ if(field.isAnnotationPresent(FruitName.class)){ FruitName fruitName = (FruitName) field.getAnnotation(FruitName.class); strFruitName=strFruitName+fruitName.value(); System.out.println(strFruitName); } else if(field.isAnnotationPresent(FruitColor.class)){ FruitColor fruitColor= (FruitColor) field.getAnnotation(FruitColor.class); strFruitColor=strFruitColor+fruitColor.fruitColor().toString(); System.out.println(strFruitColor); } } }}
五:最后是我们的客户端:
package com.annotations.test2;/** * 测试结果 * @author 贾丽敏 * */public class FruitRun { /** * @param args */ public static void main(String[] args) { FruitInfoUtil.getFruitInfo(Apple.class); }}执行结果为:
以上是一个自定义的注解,有兴趣动手敲敲(*^__^*)
阅读全文
0 0
- 《java基础学习之——自定义注解》
- Java注解-----之自定义注解基础
- 《java基础学习之——注解Annotation》
- 《java基础学习之——重复注解》
- 《java基础学习之——注解 问题和练习》
- 《java基础学习之——注解 问题练习答案》
- java 基础学习之注解
- Java基础之理解Annotation(自定义注解)
- Java基础之--反射、自定义注解
- Java注解学习笔记——自定义注解
- Java进阶之Annotation(注解)——自定义注解
- java自定义注解基础
- java学习笔记之自定义注解
- java之注解 自定义注解
- java自定义注解学习
- Java之自定义注解
- JAVA基础回顾-自定义注解
- Java基础学习——注解(Annotations)学习
- Optimizing graphics performance
- Android FileHelper 打开各种类型文件
- javascript语言精粹(函数2)
- Java时间格式转换大全
- RecyclerView setHasFixedSize(true)的意义
- 《java基础学习之——自定义注解》
- mysql 多字段求和排序/分组排序(旧事拾遗)
- Python List index方法
- PHP探索之旅—-字符串String
- flybird飞翔的小鸟步骤分解
- 数据科学—数据科学行业的8个关键角色
- DataColumn 对象
- Html5通过js进行页面内搜索
- mysql 多主多从