内容简介:Java 注解学习笔记,原文:元注解即用来描述注解的注解。按 OO 的思想,假设注解是一个对象,那么谁来定义注解呢,那就是元注解。一表胜千言
Java 注解
Java 注解学习笔记,原文: Java中的注解原来是这样回事的
内置注解
- @Override
- @Deprecated
- @SupperessWarnings
元注解
元注解即用来描述注解的注解。按 OO 的思想,假设注解是一个对象,那么谁来定义注解呢,那就是元注解。
@Target
一表胜千言
参数 | 说明 |
---|---|
CONSTRUCTOR | 构造器的声明 |
FIELD | 域声明(包括enum实例) |
LOCAL_VARIABLE | 局部变量声明 |
METHOD | 方法声明 |
PACKAGE | 包声明 |
PARAMETER | 参数声明 |
TYPE | 类、接口(包括注解类型)或enum声明 |
@Retention
参数 | 说明 |
---|---|
SOURCE | 注解将被编译器丢弃 |
CLASS | 注解在class文件中可用,但会被JVM丢弃 |
RUNTIME | JVM将在运行期也保留注解,因此可以通过反射机制读取注解的信息 |
@Documented
@Inherited
如何定义注解
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Test { }
在后续的使用中直接 @Test
就可以使用我们自己定义的注解了。但是因为这个注解没有实现任何功能,所它什么也不会做。
@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Table { String name() default ""; String catalog() default ""; String schema() default ""; UniqueConstraint[] uniqueConstraints() default {}; Index[] indexes() default {}; }
注解处理器
定义一个简单的注解
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Person{ String name() default "I don't have name"; int age() default 21; }
应用到实体类中:
public class MyLove { @Person(name = "My name is zhy") public String zhy(){ return "zhy"; } @Person(name = "My name is xyx", age = 19) public String xyx(){ return "xyx"; } }
相应的注解处理器:
import java.lang.reflect.Method; import java.util.List; public class MyLoveTest { public static void myLoveTest(List<Integer> ages, Class<?> cl) { Method[] methods = cl.getDeclaredMethods(); for (Method method : methods) { Person person = method.getAnnotation(Person.class); if (person != null) { System.out.println("My name is " + person.name() + "and I'm " + person.age()); ages.remove(person.age()); } } for (int i : ages) { System.out.print("Missing age is " + i); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Spring 注解编程之模式注解
- Java注解之编译时注解
- Java注解之运行时注解
- Java中的注解-自定义注解
- Java注解Annotation与自定义注解详解
- Java 元注解及 Spring 组合注解应用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机程序的构造和解释
Harold Abelson、Gerald Jay Sussman、Julie Sussman / 裘宗燕 / 机械工业出版社 / 2004-2 / 45.00元
《计算机程序的构造和解释(原书第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构造和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。 海报:一起来看看 《计算机程序的构造和解释》 这本书的介绍吧!