1.定义
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) //作用时间,是运行时,其他有编译时等 @Target(ElementType.METHOD) //作用的对象,这里是方法,也可以是类和属性,参数 public @interface SampleAnnotation { //注解名称是SampleAnnotation,需要用@interface定义注解 //方法 String value(); }
2. 使用
public class SampleAnnatationUser { //这些值会被注解的value方法得到 @SampleAnnotation("oh my god ,i put a value in it") public void use() { System.out.println("success,i use"); } public void notUse() { System.out.println("fail,i am not use"); } }
3.实现,无反射不注解
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class SampleMain { public static void main(String[] args) { SampleAnnatationUser sampleAnnatationUser = new SampleAnnatationUser(); for (Method method : sampleAnnatationUser.getClass().getMethods()) { if (method.isAnnotationPresent(SampleAnnotation.class)) { try { SampleAnnotation annotation = method.getAnnotation(SampleAnnotation.class); System.out.println(annotation.value()); method.invoke(sampleAnnatationUser, null); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } }
4.结果
oh my god ,i put a value in it success,i use
相关推荐
同时也在代码中详细注释了自己学习时的一些适时的初浅认识。例如:用方法组织代码的一些菜菜菜菜菜菜鸟级的感觉----- 1、按照自己的思路,定义各个功能方法;2、进行控件的布局,并生成控件方法;3、在控件方法中...
基于遗传算法解决混合流水车间调度问题python源码+项目说明+详细注释.zip ### GA_solve_1-max 对于最简单的1-max问题使用GA进行初体验 使用python 包装了一个GA类,包括可视化效果 使用不同参数,做了50次仿真...
基于遗传算法解决混合流水车间调度问题python源码+部署操作说明+注释.zip 对于最简单的1-max问题使用GA进行初体验 使用python 包装了一个GA类,包括可视化效果 使用不同参数,做了50次仿真模拟,得到了可观的效果...
简介从诞生之初,Spring框架就坚守它的宗旨:简化企业级应用开发,同时给复杂问题提供强大的、非侵入性解决方案。一年前发布的Spring2.0就把这些主题推到了一个新的高度。XMLSchema的支持和自定义命名空间的使用大大...
• 了解XML Schema推荐标准 • 掌握XML Schema和DTD的区别 • 掌握元素和属性的声明 ...• 掌握简单类型和复杂类型的定义 • 掌握模式与名称空间 • 掌握在实例中引用模式文档 • 了解注解 • 使用XMLSpy编写模式文档
基于遗传算法解决混合流水车间调度问题python源码+项目说明+详细注释.zip ### GA_solve_1-max 对于最简单的1-max问题使用GA进行初体验 使用python 包装了一个GA类,包括可视化效果 使用不同参数,做了50次仿真...
1.3 关于注释 1.4 控制结构 1.4.1 while语句 1.4.2 for语句 1.4.3 if语句 1.4.4 读入未知数目的输入 1.5 类的简介 1.5.1 Sales_item类 1.5.2 初窥成员函数 1.6 C++程序 第2章 变量和基本类型 2.1 基本...
从诞生之初,Spring框架就坚守它的宗旨:简化企业级应用开发,同时给复杂问题提供强大的、非侵入性解决方案。一年前发布的Spring2.0就把这些主题推到了一个新的高度。XML Schema的支持和自定义命名空间的使用大大...
1.3 关于注释 8 1.4 控制结构 10 1.4.1 while语句 10 1.4.2 for语句 12 1.4.3 if语句 14 1.4.4 读入未知数目的输入 15 1.5 类的简介 17 1.5.1 Sales_item类 17 1.5.2 初窥成员函数 19 1.6 C++程序 21 小结 22 术语 ...
第二部分 初 始 阶 段 第4章 初始不是需求阶段 4.1 什么是初始 4.2 初始阶段的持续时间 4.3 初始阶段会创建的制品 4.4 何时知道自己并不了解初始阶段 4.5 初始阶段中有多少UML 第5章 进化式需求 5.1 定义:...
简介 从诞生之初,Spring框架就坚守它的宗旨:简化企业级应用开发,同时给复杂问题提供强大的、非侵入性解决方案。一年前发布的Spring2.0就把这些主题推到了一个新的高度。XML Schema的支持和自定义命名空间的...
16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 16.8 构造型、简档和标记 16.9 UML特性和特性字符串 16.10 泛化、抽象类、抽象操作 16.11 依赖 16.12 接口 16.13 组合优于聚合 ...
16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 16.8 构造型、简档和标记 16.9 UML特性和特性字符串 16.10 泛化、抽象类、抽象操作 16.11 依赖 16.12 接口 16.13 组合优于聚合 ...
16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 16.8 构造型、简档和标记 16.9 UML特性和特性字符串 16.10 泛化、抽象类、抽象操作 16.11 依赖 16.12 接口 16.13 组合优于聚合 ...
16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 16.8 构造型、简档和标记 16.9 UML特性和特性字符串 16.10 泛化、抽象类、抽象操作 16.11 依赖 16.12 接口 16.13 组合优于聚合 ...
16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 16.8 构造型、简档和标记 16.9 UML特性和特性字符串 16.10 泛化、抽象类、抽象操作 16.11 依赖 16.12 接口 16.13 组合优于聚合 ...
16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 16.8 构造型、简档和标记 16.9 UML特性和特性字符串 16.10 泛化、抽象类、抽象操作 16.11 依赖 16.12 接口 16.13 组合优于聚合 ...
16.5 注解符号:注解、注释、约束和方法体 16.6 操作和方法 16.7 关键字 16.8 构造型、简档和标记 16.9 UML特性和特性字符串 16.10 泛化、抽象类、抽象操作 16.11 依赖 16.12 接口 16.13 组合优于聚合 ...