各位大神,求救!!!java 如何获取该类上字段的注解,看图片

各位大神,求救!!!java 如何获取该类上字段的注解,看图片,第1张

我知道

1先获取这个类的class

Class<> objclass=tgetClass();

2 获取这个类的字段属性

Field[] at = objclassgetDeclaredFields();

3遍历所有字段

for (Field fd : at) {

//比如获取这个字段上是否包含NotNull

if (fdisAnnotationPresent(NotNullclass)) {

//这样就获取到这个注解属性了

NotNull d = fdgetAnnotation(NotNullclass);

}

}

4要获取一个注解,你要先获取他所在的字段

希望对你有帮助!

很多朋友都想知道java怎么获取注解的值?下面就一起来了解一下吧~

1、定义一个注解,用于给全局变量field字段赋值

package comhahastudyannotationvalue; import javalangannotationDocumented; import javalangannotationElementType; import javalangannotationRetention; import javalangannotationRetentionPolicy; import javalangannotationTarget; /  description: 定义一个注解,用于给 全局变量 field 字段 赋值,并使用反射取值。 

 特别提醒: @Rentention(RetentionPolicyRUNTIME) 时,注解才会被jvm加载,才能使用反射获取。  @version v10  @author w  @date 2018年8月1日下午2:37:40 / @Documented @Retention(RetentionPolicyRUNTIME) @Target(value=ElementTypeFIELD) public @interface Fields { int sort() default 0 ; String value() ; }

2、创建一个普通的类,使用 @ConsAnnotation、@Fields 注解

package comhahastudyannotationvalue; /  description: 创建一个普通的类,使用 @ConsAnnotation、@Fields 注解。  @version v10  @author w  @date 2018年8月1日下午2:50:23 / @ConsAnnotation(request = { "hello","world","annotation!" }) public class User { @Fields("中华人民共和国") private String userName; public String getUserName() { return userName; } public void setUserName(String userName) { thisuserName = userName; } }

3、针对 comhahastudyannotationvalueUser 类使用注解的测试

package comhahastudyannotationvalue; import javalangreflectField; import javautilArrays; /  description: 针对 comhahastudyannotationvalueUser 类使用注解的测试  @version v10  @author w  @date 2018年8月1日下午2:37:13 / public class ValueTest { public static void main(String[] args) throws Exception { User user = new User(); // 1、 获取 User类上的注解 @ConsAnnotation ConsAnnotation anno = usergetClass()getAnnotation(ConsAnnotationclass); String[] arr = annorequest(); Systemoutprintln(ArraystoString(arr)); // [hello, world, annotation!] // 2、 获取User类中 private String userName; 变量上的注解 @Field Field f = usergetClass()getDeclaredField("userName"); Fields anno2 = fgetAnnotation(Fieldsclass); usersetUserName(anno2value()); Systemoutprintln(usergetUserName()); // 中华人民共和国 } }

既然是基于spring,可以这样:

ResourcePatternResolver rpr = new PathMatchingResourcePatternResolver();

Resource[] res = rprgetResources("classpath: /class"); // classpath:带号会找jar中的class

然后根据resource取clas路径就行

String className = res[0]getURL()getPath();

className = classNamesplit("(classes/)|(!/)")[1];

className = classNamereplace("/", "")replace("class", "");

Object obj = ClassforName(className);

话说我最近也在写一个这样的MVC。。要不咱两合伙? 我写的也是基于注解,不过要支持REST风格

以上就是关于各位大神,求救!!!java 如何获取该类上字段的注解,看图片全部的内容,包括:各位大神,求救!!!java 如何获取该类上字段的注解,看图片、java获取注解的值、java 获取所有带注解的类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9299940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存