iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java如何获取属性的注释信息详解
  • 734
分享到

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

2024-04-02 19:04:59 734人浏览 泡泡鱼

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文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作