Python 官方文档:入门教程 => 点击学习
前言 注解是JavaSE5.0开始提供的一项新特性,利用此特性可以通过特定的注解标签为程序提供一些描述性信息。这些描述性信息可以在编译或运行时为编译器、运行环境提供附加的信息,从而简
注解是JavaSE5.0开始提供的一项新特性,利用此特性可以通过特定的注解标签为程序提供一些描述性信息。这些描述性信息可以在编译或运行时为编译器、运行环境提供附加的信息,从而简化开发。本文将详细介绍Java获取属性注释信息的相关内容,下面来一起看看详细的实现代码
1.数据模型
package com.example.demo;
import java.util.List;
public class DocVO {
private List<FieldVO> fieldVOList;
public DocVO(List<FieldVO> 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<FieldVO> getFieldVOList() {
return fieldVOList;
}
public void setFieldVOList(List<FieldVO> 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;
public class DocUtil {
private static RootDoc rootDoc;
public static boolean start(RootDoc root) {
rootDoc = root;
return true;
}
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<DocVO.FieldVO> fieldVOList = new ArrayList<>(fields.length);
for (FieldDoc field : fields) {
fieldVOList.add(new DocVO.FieldVO(field.name(), field.type().typeName(), field.commentText()));
}
return new DocVO(fieldVOList);
}
}
3.测试
package com.example.demo;
import java.util.Objects;
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获取属性注释信息内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Java如何获取属性的注释信息详解
本文链接: https://www.lsjlt.com/news/130470.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0