内容简介: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 组合注解应用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
机器学习算法原理与编程实践
郑捷 / 电子工业出版社 / 2015-11 / 88.00
本书是机器学习原理和算法编码实现的基础性读物,内容分为两大主线:单个算法的原理讲解和机器学习理论的发展变迁。算法除包含传统的分类、聚类、预测等常用算法之外,还新增了深度学习、贝叶斯网、隐马尔科夫模型等内容。对于每个算法,均包括提出问题、解决策略、数学推导、编码实现、结果评估几部分。数学推导力图做到由浅入深,深入浅出。结构上数学原理与程序代码一一对照,有助于降低学习门槛,加深公式的理解,起到推广和扩......一起来看看 《机器学习算法原理与编程实践》 这本书的介绍吧!