• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java如何获取属性的注释信息详解

java 搞代码 4年前 (2022-01-05) 26次浏览 已收录 0个评论

Java注解是从Java5开始添加到Java的,这篇文章主要给大家介绍了关于Java如何获取属性的注释信息的相关资料,文中介绍的非常详细,需要的朋友可以参考下

前言

注解是JavaSE5.0开始提供的一项新特性,利用此特性可以通过特定的注解标签为程序提供一些描述性信息。这些描述性信息可以在编译或运行时为编译器、运行环境提供附加的信息,从而简化开发。本文将详细介绍Java获取属性注释信息的相关内容,下面来一起看看详细的实现代码

实例代码

1.数据模型

 package com.example.demo; import java.util.List; /** * Description: * * @author jack * @date 2021/7/13 5:15 下午 */ public class DocVO { private List fieldVOList; public DocVO(List fieldVOList) { this.fieldVOList = fieldVOList; } public static class FieldVO { /** * 属性名称 */ private String fieldName; /** * 属性类型 */ private String fieldType; /** * 属性注释 */ private String describe; public FieldVO() { } public FieldVO(String fieldName, String fieldType, String describe) { this.fieldName = fieldName; this.fieldType = fieldType; this.describe = describe; } public String getFieldName() { return fieldName; } public void setFieldName(String fieldName) { this.fieldName = fieldName; } public String getFieldType() { return fieldType; } public void setFieldType(String fieldType) { this.fieldType = fieldType; } public String getDescribe() { return describe; } public void setDescribe(String describe) { this.describe = describe; } @Override public String toString() { return "FieldVO{" + "fieldName='" + fieldName + '\'' + ", fieldType='" + fieldType + '\'' + ", describe='" + describe + '\'' + '}'; } } public List getFieldVOList() { return fieldVOList; } public void setFieldVOList(List fieldVOList) { this.fieldVOList = fieldVOList; } } 

2.工具类

 package com.example.demo; import com.sun.javadoc.ClassDoc; import com.sun.javadoc.FieldDoc; import com.sun.javadoc.RootDoc; import com.sun.tools.javadoc.Main; import java.util.ArrayList; import java.util.List; /** * Description: * * @author jack * @date 2021/7/13 5:10 下午 */ public class DocUtil { /** * 会自动注入 */ private static RootDoc rootDoc; /** * 会自动调用这个方法 * * @param root root * @return true */ public static boolean start(RootDoc root) { rootDoc = root; return true; } /** * 生成文档 * * @param beanFilePath 注意这里是.java文件绝对路径 * @return 文档注释 */ public static DocVO execute(String beanFilePath) { Main.execute(new String[]{"-doclet", DocUtil.class.getName(), "-docletpath", DocUtil.class.getResource("/").getPath(), "-encoding", "utf-8", beanFilePath}); ClassDoc[] classes = rootDoc.classes(); if (classes == null || classes.length == 0) { return null; } ClassDoc classDoc = classes[0]; // 获取属性名称和注释 FieldDoc[] fields = classDoc.fields(false); List fieldVOList = new ArrayList(fields.length); for (FieldDoc field : fields) { fieldVOList.add(new DocVO.FieldVO(field.name(), field.type().typeName(), field.commentText(<em style="color:transparent">来源[email protected]搞@^&代*@码网</em>))); } return new DocVO(fieldVOList); } } 

3.测试

 package com.example.demo; import java.util.Objects; /** * Description: * * @author jack * @date 2021/7/13 4:11 下午 */ public class ClassTest { public static void main(String[] args) { String beanFilePath = "/Documents/demo/src/main/java/com/example/demo/dto/MailDTO.java"; DocVO docVO = DocUtil.execute(beanFilePath); if (Objects.nonNull(docVO) && Objects.nonNull(docVO.getFieldVOList())){ docVO.getFieldVOList().forEach(System.out::println); } } } 

总结

到此这篇关于Java如何获取属性的注释信息的文章就介绍到这了,更多相关Java获取属性注释信息内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaodaima搞代码网

以上就是Java如何获取属性的注释信息详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java如何获取属性的注释信息详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址