当前位置: 首页 > news >正文

山东企业网站备案沧州网站建设公司

山东企业网站备案,沧州网站建设公司,海南在线招聘,红河做网站需求 工作时有需求获取java文件成员变量的注释,故而研究了一系列开源产品,之所以选择JavaParse,是因为博客上文件比较多。。。 多归多,但也版本杂乱,走了不少歪路。 版本2.x和版本3.x还是有较大不同的,有…

需求

工作时有需求获取java文件成员变量的注释,故而研究了一系列开源产品,之所以选择JavaParse,是因为博客上文件比较多。。。

多归多,但也版本杂乱,走了不少歪路。

版本2.x和版本3.x还是有较大不同的,有需要的人可以参考。

版本2.x

<!-- https://mvnrepository.com/artifact/com.github.javaparser/javaparser-core -->
<dependency><groupId>com.github.javaparser</groupId><artifactId>javaparser-core</artifactId><version>2.2.1</version>
</dependency>
package cn.com.infosec.netseal.webserver.util;import cn.com.infosec.netseal.common.util.StringUtils;
import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.body.TypeDeclaration;
import com.github.javaparser.ast.comments.Comment;import java.io.File;
import java.util.List;public class JavaParseTest {public static void main(String[] args) throws Exception {String classPath = "E:\\Idea\\NetSeal\\v7\\src\\netseal\\netseal-common\\src\\main\\java\\cn\\com\\infosec\\netseal\\common\\resource\\errCode\\ErrSubType.java";String mapName = "subTypeMap";CompilationUnit parse = JavaParser.parse(new File(classPath));// 获取指定文件中的所有类List<TypeDeclaration> types = parse.getTypes();for (TypeDeclaration type : types) {// 获取类名/类注释String className = type.getName();type.getComment();// 获取类里的变量、方法等子节点List<Node> list = type.getChildrenNodes();System.out.println("总个数:" + list.size());for (Node node : list) {if (node.toString().indexOf("(") != -1)continue;// 获取变量的类型、变量名称和变量值;List<Node> varTypeAndKV = node.getChildrenNodes();Node varKV = varTypeAndKV.get(1);String varK = varKV.toString().split("=")[0].trim();// 获取变量注释String content = "";Comment comment = node.getComment();if (comment != null && comment.getContent() != "") {content = comment.getContent().replace("*", "").trim();}System.out.println(StringUtils.format("{}.put({}.{}, \"{}\");", mapName, className, varK, content));}}}
}

版本3.x

<dependency><groupId>com.github.javaparser</groupId><artifactId>javaparser-core</artifactId><version>3.6.16</version><scope>compile</scope>
</dependency>
package cn.com.infosec.netseal.appserver.util;import cn.com.infosec.netseal.common.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.NodeList;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.body.FieldDeclaration;
import com.github.javaparser.ast.body.TypeDeclaration;
import com.github.javaparser.ast.body.VariableDeclarator;
import com.github.javaparser.ast.comments.Comment;
import com.github.javaparser.ast.expr.SimpleName;import java.io.File;
import java.util.List;
import java.util.Optional;public class JavaParseTest {public static void main(String[] args) throws Exception {String classPath = "E:\\Idea\\NetSeal\\v7\\src\\netseal\\netseal-common\\src\\main\\java\\cn\\com\\infosec\\netseal\\common\\resource\\errCode\\ErrSubType.java";String mapName = "subTypeMap";CompilationUnit parse = JavaParser.parse(new File(classPath));Optional<ClassOrInterfaceDeclaration> errSubType = parse.getClassByName("ErrSubType");errSubType.ifPresent((c) -> {// 获取类名/类注释String className = c.getName().toString();c.getComment();// 获取类里的变量、方法等子节点List<Node> list = c.getChildNodes();System.out.println("总个数:" + list.size());for (Node nodeTmp : list) {if (!(nodeTmp instanceof FieldDeclaration))continue;FieldDeclaration node = (FieldDeclaration) nodeTmp;// 获取变量的类型、变量名称和变量值;VariableDeclarator variable = node.getVariable(0);String  varName = variable.getNameAsString();String  varType = variable.getTypeAsString();// 获取变量注释String content = "";Optional<Comment> comment = node.getComment();if (comment != null && comment.get().getContent() != "") {content = comment.get().getContent().replace("*", "").trim();}System.out.println(StringUtils.format("{}.put({}.{}, \"{}\");", mapName, className, varName, content));}});}
}
http://www.ds6.com.cn/news/81535.html

相关文章:

  • 成品短视频app的优势抖音seo什么意思
  • 中山电商网站制作站长工具怎么关掉
  • 怎么利用网站做兼职引流推广的句子
  • 常州网站建设软件搜索指数在线查询
  • 海南澄迈网站建设兰州网站seo服务
  • 零基础学习网站开发优化大师最新版下载
  • 网络培训ppt长沙网站seo收费
  • 58网页版登录打开数字营销服务商seo
  • 制作网站的步骤百度seo排名帝搜软件
  • 响应式网页需要什么技术优化资源配置
  • 典型的b2b网站有论坛推广平台有哪些
  • 商场设计案例宁波关键词优化排名工具
  • 做模板网站怎么放视频百度上怎么打广告宣传
  • 加粉网站开发seo优化或网站编辑
  • 网站seo优化主要有哪些手段贵州二级站seo整站优化排名
  • 重庆建设工程信息网查询平台入口官网免费seo关键词优化排名
  • 工程资料代做网站网络营销工具有哪些
  • 个人网站做商城会怎样百度ai人工智能平台
  • 网站党建专栏建设方案seo推广优化服务
  • 旅游网站开发论文seo优化招聘
  • wordpress自动留言seo怎样优化网站
  • 芜湖网站建设优化seo优化查询
  • 电商网站的数据库设计武汉网络关键词排名
  • 怎么对网站标注做记号seo网络营销
  • 正规的徐州网站开发5118站长工具箱
  • 最好的app开发公司关键词优化的最佳方法
  • 福田网站建设设计公司发布平台
  • 郑州网站推广价舆情管理
  • 克隆网站怎么做后台优化营商环境的措施建议
  • 企业网站建设公司哪家好百度关键词推广方案