问题标签 [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 - 计算 if-else 子句的总数(包括嵌套)
需要计算 if-else 子句的数量。我正在使用java解析器来做到这一点。
到目前为止我所做的:我已经通过使用函数获得了所有 if 和 else-if 子句的计数
问题: 如何计算 else 子句?此函数忽略“else”子句。
例子:
在这种情况下,我希望答案为 8,但调用的大小将返回 5,因为它只遇到 5 个“if”并忽略 else 子句。有没有什么函数可以直接帮我统计 else 子句?
我的代码:
java - 如何解析java方法体?
我想解析 java 源文件 (.java) 以识别类中包含对特定方法的调用的方法。
在下面的示例中,我需要知道哪些方法包含对 xyz() 的调用。所以,解析器应该返回 method01 和 method03
我尝试使用 javaparser (com.github.javaparser)。我创建了一个访问者并通过覆盖
我能够“访问”类中的所有方法。
但我不知道如何解析visted 方法的主体。我不愿意使用 n.getBody().toString().contains(“xyz()”)
java - 使用 Jackson Json 序列化 Javaparser 对象
我正在尝试使用 Jackson JSON 序列化 Javaparser 对象,但它非常复杂,因为它是第三方库(我无法更改/注释代码)并且其中存在循环依赖关系。
我的项目结构如下:
一个对象Analysis
包含一些WrappedNode
可能相互引用的列表。每个都WrappedNode
包含一个 JavaParser CallableDeclaration
。
当我尝试映射我的Analysis
时,我遇到了一个错误:
所以,为了摆脱无限递归,我知道我必须使用@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
,我在我的课堂上做过,但我认为我还应该使用Mix-in annotations 对WrappedNode
JavaParser 类进行注释。
问题是字段多,类多,不知道要注释哪些。
谢谢你的帮助 !
java - 如何将项目(即从 github)导入我的应用程序
所以我一直在做一个需要处理一些Java代码的项目。为此,我决定使用 JavaParser。
在他们的网站JavaParser上,我看到了一个“入门”指南,该指南解释了如何在 Maven 和 Gradle 中包含 JavaParser,但由于我没有使用任何一个,我认为我需要做的是获取一些javaparser.jar
并将其添加到我的类路径中?
我的问题是,我在JavaParser 网站 或JavaParser GitHub上找不到任何地方下载这个 .jar 文件,所以这是正确的方法吗?我应该克隆我想要使用的项目并创建自己的 jar 文件吗?我需要使用 Maven 吗?
我最终在第三方网站上找到了 jar 文件,而不是在任何官方 JavaParser 页面上找到它,这让我觉得我做错了什么。
所有答案表示赞赏!-詹姆士
java - 如何在 Maven 中包含 JavaParser 依赖项?
我阅读了官方http://javaparser.org/页面,但我不知道如何安装它。我看到了这个答案https://stackoverflow.com/a/32215185/7643663告诉我
使用 Maven 轻松创建项目并在依赖项中包含 JavaParser
随着
但我不知道如何使用 javaparser 和 maven 构建我的代码。我mvn clean install
在下载javaparser源代码的目录中执行,没有错误。然后我尝试运行以下命令:
但是当我导入com.github.javaparser.JavaParser.*;
我得到这个错误:package com.github.javaparser.JavaParser does not exist
。
所以我认为我没有正确安装 JavaParser,或者我必须以某种方式处理 pom.xml 中的 JavaParser 依赖项。
这是我的 pom.xml 与 javaparser-core 依赖项:
java - Java 解析器添加一个新的内部类
我想使用 Java Parser将内部类添加到现有类。
我试过了
但这为Java 类添加了一个新类,即不是作为内部类。
任何帮助,将不胜感激。
我想将 Builder 插入到现有的类中,例如
公共类 BuilderDemo {
}
我希望节点层次结构如下所示:-
任何帮助,将不胜感激。
javaparser - 如何在 JavaParser 中更改对象类型
我正在使用 JavaParser。
例如,我有以下方法
Blabla.test();
是静态调用。我想更改Blabla.test()
为ABCD.test()
不更改任何其他内容。我从methodCall.getScope().get()
. 但是怎么用methodCall.setScope()
?它期望表达式作为参数。
java - 如何使用 Javaparser 解析 for 循环?
我需要使用javaparser
将不正确的形式解析for-loop
为正确的形式。我的循环有 5 个参数:
- 循环索引 (i);
- 指数的初始值。它可以是其他值(例如,k)或int值(10);
- 循环不变量的值 (3);
- 不变量的条件(>、<、>= 或 <=);
- 操作,在每次循环运行后执行(- 或 + 将更改为 i-- 或 i++)。
我创建了两个类。第一个是不正确的循环,第二个是正确的循环(解析后)。我决定首先编写这两个类来检查解析前后的代码应该如何看待,然后编写解析代码。但我不确定这是一个好的开始,我代表了我的 for 循环更正。澄清:我想将代码从 Class.java 解析到 ClassAltered.java。
第一个循环不正确的类:
具有正确循环的第二类:
java - 使用 javaparse 解析 for 循环时出错
这是我之前的问题的连续性:如何使用 Javaparser 解析 for 循环?. 我正在尝试将这个不正确的 for-loop: 解析为FOR(j, k, 15, >, -);
正确的形式:for (var j = k; j > 15; j--){}
。这意味着将Class.java解析为ClassAltered.java类。我的代码应该使用正确的循环创建新类 ClassAltered.java。现在我解析for循环的方法被注释了(我还没有完成),但无论如何我都有同样的错误。我确信 javaparser 可以解析不正确的语句,但我对“>”、“<=”、“+”、“-”的视线有问题。如果我删除这个景点,一切正常。我使用 javaparser-core-3.1.0.jar
这是我的错误:
这是我要解析的 Class.java:
这是我的 Main.class:
java - 提取java方法中引用的实例变量
我有一个像下面这样的课
在该代码片段中,我有两个实例变量var1、var2和两个方法methodA、methodB的类。var1在methodA和methodB中都被引用。如何从 java 类中提取这些信息?