
Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。
注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 javalangannotation 包中。
1、元注解
元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。
11、@Retention: 定义注解的保留策略
@Retention(RetentionPolicySOURCE) //注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicyCLASS) // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
@Retention(RetentionPolicyRUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
12、@Target:定义注解的作用目标
@Target(ElementTypeTYPE) //接口、类、枚举、注解
@Target(ElementTypeFIELD) //字段、枚举的常量
@Target(ElementTypeMETHOD) //方法
@Target(ElementTypePARAMETER) //方法参数
@Target(ElementTypeCONSTRUCTOR) //构造函数
@Target(ElementTypeLOCAL_VARIABLE)//局部变量
@Target(ElementTypeANNOTATION_TYPE)//注解
@Target(ElementTypePACKAGE) ///包
由以上的源码可以知道,他的elementType 可以有多个,一个注解可以为类的,方法的,字段的等等
13、@Document:说明该注解将被包含在javadoc中。
14、@Inherited:说明子类可以继承父类中的该注解。
如何获取类的注解和注解的内容
java 反射
Class someClass = SomegetClass();
注解 somtAnnotation = someClassgetAnnotation(注解class)
属性类型 属性值 = someAnnotation属性();
要一一遍历么?
这个要根据需求来顶,谁用谁遍历,
@Retention(RetentionPolicyRUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
@Target({ElementTypeFIELD,ElementTypeMETHOD})//定义注解的作用目标作用范围字段、枚举的常量/方法
@Documented//说明该注解将被包含在javadoc中
public @interface FieldMeta {
/
是否为序列号
@return
/
boolean id() default false;
/
字段名称
@return
/
String name() default "";
/
是否可编辑
@return
/
boolean editable() default true;
/
我知道
1先获取这个类的class
Class<> objclass=tgetClass();
2 获取这个类的字段属性
Field[] at = objclassgetDeclaredFields();
3遍历所有字段
for (Field fd : at) {
//比如获取这个字段上是否包含NotNull
if (fdisAnnotationPresent(NotNullclass)) {
//这样就获取到这个注解属性了
NotNull d = fdgetAnnotation(NotNullclass);
}
}
4要获取一个注解,你要先获取他所在的字段
希望对你有帮助!
以上就是关于java方法名前注释问题全部的内容,包括:java方法名前注释问题、java如何获取类上的注解、java获取当前类上的注解内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)