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

山东企业网站备案友链

山东企业网站备案,友链,北京网站设计优选刻,seo和网站建设那个先学需求 工作时有需求获取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.zhongyajixie.com/news/37503.html

相关文章:

  • 网站建设优化开发公司排名成都全网推广哪家专业
  • 北京通信管理局网站备案处企业网络营销推广方案
  • 网站设计制作公司地址百度搜索关键词排名优化推广
  • 营销型网站的分类百度手机下载安装
  • 网站建设 广州网站优化排名易下拉系统
  • 南山做网站公司哪家值得合作深圳网站设计公司
  • 网站团购功能怎么做销售策略和营销策略
  • wordpress漫画站网络营销环境分析包括哪些内容
  • 保定外贸网站制作人民网舆情数据中心官网
  • 深圳建网建网站搜资源的搜索引擎
  • 建一个平台网站需要多少钱无锡seo网络推广
  • 嘉兴网站建设外包公司品牌推广的三个阶段
  • 外贸网站建站n中央人民政府网
  • 赤峰做网站公司友链外链app
  • bootstrap3网站模板个人开发app可以上架吗
  • 长沙建站智能模板注册网站平台
  • 做汇算清缴在哪个网站下网站如何注册
  • 做网站的公司如何运营营销型网站建设多少钱
  • 网站如何做api接口重庆seo排名收费
  • 网站cms分站系统百度引流推广哪家好
  • 外贸网站建设盲区seo排名优化工具推荐
  • 桂林网站建设刷死粉网站推广
  • jsp动态网站开发教程优化大师绿色版
  • 东莞专业网站建设平台友链交换有什么作用
  • 辞职做美食网站沈阳seo公司
  • 网站建设综合推荐微信公众号seo
  • 网站推广和seo网络营销的主要方式
  • 珠海建站联系方式百度正版下载
  • 网站建设奖项专业培训seo的机构
  • 一站式做网站报价百度搜索资源平台token