问题标签 [javaparser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何使用 javaparser 获取二进制子表达式
我正在使用javaparser解析 Java 源文件的 AST。
我想将源代码中的所有二进制子表达式作为单个节点。这是我正在解析的源代码:
我实现了一个接受内置 BinaryExp 类型的访问者,但它找到的唯一节点包含二进制表达式:
有没有办法访问子表达式“(4 / 10.0)”?我尝试获取完整表达式的“左操作数”,但它是 Expression 类型,而不是我预期的 BinaryExpr。
任何帮助,将不胜感激。
java - 在 AST 中复制节点
我正在使用javaparser从 Java 源代码构造一个 AST。有没有办法安全地复制 AST 节点?
例如,如果我想复制 BinaryExpr 以插入树中的其他位置,是否有复制节点的内置方法?
java - Javaparser:单行块的花括号?
我正在使用Javaparser来解析/编写源代码。
我注意到,如果我用单行 thenStmt 创建一个 IfStmt,那么 toString 方法不会使用花括号将块括起来。这使得输出源代码难以阅读,因为所有内容都放在一行中,如下所示。
有没有办法为单行 if 块启用花括号?所以 toString 方法将改为输出:
java - Javaparser:用一种方法访问所有节点类型
我正在使用Javaparser来解析 Java 源代码。
有没有办法实现可以访问抽象节点类的访问者?
我想访问每个节点并打印它的行号,但我不想为每个节点类型(AssignExpr、BinaryExpr、IfStmt 等)实现一个 visit() 方法,因为类型太多了。
java - java中的字符串解析器逻辑
我有一个像下面这样的字符串,它可以通过更多的 AND/OR/NOT 条件进一步增长,但保持语法。
需要解析这个字符串。部分成功将此字符串转换为 JSON 对象。但不能完全做到。
java - 使用 Java Parser 从 Java 文件中解析属性
我在下面有 3 节课。
我想使用具有以下信息的 java 解析器解析类:
- 类名
- 方法名称
- 属性名称
android - 用 JsonObject 解析 JsonArray
我有一些具有以下结构的 JSON:
我正在尝试使用以下 Java 代码访问元素“product_id”和“price_id”:
但我看到产品未找到错误。我的解析器有什么问题?
java - 从java代码中提取方法调用
我想从 java 代码中提取所有方法调用。我写了以下两个正则表达式,但它们无法提取所有方法调用。
注册1:Pattern.compile("([a-zA-Z][0-9_a-zA-Z]*\\([a-zA-Z0-9_\\s,\\[\\]\\(\\)\\.]+\\))");
注册2:Pattern.compile("([a-zA-Z][0-9_a-zA-Z]*\\([\\s]*\\))")
输入:
输出:
我无法提取“ encode
”。
有谁知道我应该在正则表达式中添加什么?
java - .java 报告生成、方法调用者和被调用者
您好,互联网上最有帮助的社区!
我正在开发一个可以读取 .java 文件并吐出数据的项目。我提取数据的程序之一并没有完全按照我的预期工作(非常陈词滥调)。它解析文件树中的所有 .java 文件,并使用链接哈希图在 .txt 文件中列出调用方 pkg.class.method 和调用 pkg.class.method 等数据。它做的一切都是正确的,除了它只给我一个方法调用的最后一个方法,而不是每个方法调用的所有方法。我认为这是因为我在linkedhashmap 中存储数据的方式,即一个键(调用方方法)和多个值(调用方方法)。
我希望文本文件列出从第一个遇到的每个方法调用的每个方法。有没有解决的办法?
这是代码:
谢谢大家!
java - 检查方法范围Java中的重复变量
FileReader
我使用包含一些方法的java 文件。我如何读取方法范围(内部的方法区域)以查找重复变量?
例如,这是我读取的一个 java 文件:
如何知道方法范围?,我的意思是在 { 和 } 之间,如果找到范围,找到重复的变量,例如上面的示例 (int _nn) 重复。
[补充] 我尝试过使用java解析器,然后是成功的。然后我应该使用列表发送结果,但只发送列表中的最后一个方法。我的代码有什么问题?
这是一个 MethodVisitor:
然后,这是一个调用 MethodVisitor 的方法: