标签:print ted rri run mpi 选项 div font 文档
@Target({ElementType.Type})
@Retention(RetentionPolicy.RUNTIME)
public @interface Fruit {
String value() default "";
String name() default "noname";
float price() default 0;
}
// 1. 创建的语法跟接口非常像
// 2. 可以通过 default 语句给与默认值
目标。
表示这个注解可以放到哪些元素上面。如果不设定,那么注解可以放置到任何元素上。
可以有很多选项,比如:
更多,请查看 ElementType 的源码。
@Retention
保留。
有三种策略:
RetentionPolicy.SOURCE
RetentionPolicy.CLASS [默认]
RetentionPolicy.RUNTIME
添加的注解会被保留到什么步骤。
一个 Xxx.java 从产生到执行,会经历这样的步骤
Xxx.java --javac--> Xxx.class --java--> 机器码执行
执行 javac 的过程,叫编译时(Compile);
执行 java 的过程,叫运行时(Runtime);
如果 @Retention 策略设置为:
表示是否允许 javadoc 或相关工具为这个注解生成文档
表示注解是否可以被子类继承。
首先,在需要的地方,添加注解:
@Fruit(name = "apple", price = 33)
public class Apple {
// ...
}
三个重要的方法:
使用示例:
// 获取 Apple 的类对象 Class aClass = Apple.class; if (aClass.isAnnotationPresent(Fruit.class)) { // 判断 Apple 上面是否标注了 Fruit 注解 Fruit anno = aClass.getAnnotation(Fruit.class); // 通过反射的方式,获取 Apple 上面的 Fruit 注解的实例 String name = anno.name(); // 可以像调用普通方法一样调用,从而获取参数 float price = anno.price(); System.out.println(name + "的价格为" + price); }
标签:print ted rri run mpi 选项 div font 文档
原文地址:https://www.cnblogs.com/nongzihong/p/10010334.html