注解@
文章来自 shichang // Welcome!
主页
|
About Me
|
归档
|
标签
注解,即元数据,形式化地在代码中添加信息,把元数据与源代码文件结合在一起。注解可以完整地描述程序所需的信息。可以使用注解来简化和自动化重复的过程或代码 javaSE5有三种注解: `@Override`表示当前方法将覆盖父类中的方法, `@Deprecated`表示使用当前元素时会发出警告, `@SuppressWarnings`关闭不必要的编译器警告信息 创建一个自定义注解时,有四种注解可以使用。 注解 != 注释 注解是源代码层面的东西 <br> **元注解:** 定义注解时,需要使用一些元注解来修饰注解: `@Target`表示定义的注解的使用域(是一个方法METHOD或一个域) METHOD方法声明, CONSTRUCTOR构造器声明, FIELD域声明, LOCAL_VARIABLE局部变量声明, PACKAGE包声明, PARAMETER参数声明, TYPE类,接口,或枚举类型声明 `@Rectetion`定义注解的存在时间(源代码SOURCE,类文件CLASS,运行时RUNTIME) 定义的注解中没有方法的注解叫做标记注解maker annotation `@DOcument`表示将此注解包含在Javadoc中 `@Inherit`允许子类继承父类中的注解 <br> **注解的元素声明:** 元素可以使用的种类:1.所有基本数据类型;2.String;3.Class;4.enum;5.Annotation;6.以上5种的数组。*名义上不允许包装类型*,元素不能有不确定值null,至少有默认值。可以使用默认值为负数或者空字符串表示参数的不正确。 ```java @Target(ElementType.METHOD) @RetentionPolicy(ElementType.RUNTIME) public @interface UseCase{ public int id(); public String description() default "no description"; } ``` 在使用该UseCase注解时,需要使用键值对的方式给出id和description <br> **编写创建注解处理器:** 注解处理器,读取注解,留一个方法接口 注解的属性为int,和String,int型的属性作为注解的标志,可以使用一个方法接口,参数为一个Integer的容器,一个Class对象。 ```java 注解处理器接口: public static void useCaseTracker(List<Integer> useCase, Class<?> cl){...} 调用注解处理器: useCaseTracker(new ArrayList<Integer>, myUseCase.class); ``` class是一个关键字,不能作为参数。 <br> **注解的扩展应用:** 框架应用:Spring框架,Spring freamwork,等等一系列。对象映射框架ORM,mybatis,hibernate等等。使用注解来简化和自动化重复代码。 **注解的应用理解:** 一般的自定义注解如果不使用注解处理器,则自定义的注解与注释没有什么区别。向代码中添加信息。添加注解处理器后,可以实施监控,对类,方法,参数,进行监控,处理使用了这些注解的方法的参数,对这些数据进行处理分析,可以打印日志,可以进行拦截,可以通过注解处理器进行代码复用。
Pre:
连续内存分配
Next:
TCP协议