问题标签 [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.

0 投票
2 回答
209 浏览

java - 如何提取分支决策的布尔值?

我目前正在做一个项目,我需要在其中运行 JUnit 测试用例,然后从目标类(正在测试的类)中提取信息。为了提取所涵盖的语句,我使用了 eclEmma,但是使用这个工具我只能提取运行测试类后在目标中执行的行号。

我想在 if 语句中提取分支决策的布尔值,以得出在覆盖目标类的特定真/假分支时验证哪些条件。

我知道我可以使用 JavaParser 解析 Java 文件,然后提取以下信息,但我不确定如何提取分支决策的布尔值。

0 投票
1 回答
570 浏览

java - JavaParser提取注释参数值

我正在开发一个项目来解析基于 jersey 的注释,以从 java 源代码构建项目之间的请求交互图。

当每个人都这样想时,很容易解析和获取信息

我可以提取像{Method:"GET", Path:"parameter/{param}"}这样的值

其他情况是

或者

在最后两种情况下,我无法提取真正的价值。

在使用 javaparser、ast 等处理静态源代码时,如何获取变量的值?

我在等你的建议。谢谢。

0 投票
2 回答
3976 浏览

java - 在 java 中将日期 dd/MM/yyyy 转换为 dd-MM-yyyy

我正在尝试使用下面的代码在 java 中从 YYYY-MM-dd hh:mm:ss.ms 转换 dd-MM-yyyy 格式的日期,但我无法获得所需的值

customerEntity.getDob().toString 为我提供了这个值 1987-06-12 00:00:00.0

但是当我将它解析为 String dob 时,它会产生 163-06-1987 作为输出,而我想要像 12-06-1987 这样的输出。

任何帮助都将不胜感激,在此先感谢

0 投票
1 回答
1114 浏览

java - 如何使用 java-parser 和 java-symbol-solver 推断函数所有参数的类型?

假设我有以下Class Ainpkg1Class Binpkg2和函数calculate()定义pkg2 class B如下:

我想确定参数的类型a1a2. 例如,在这里它将是pkg1.A并且属于。pkg1.Aclass Apkg1

我主要关心的是,我不想构建项目,我想做静态分析(我有所有的源文件)。

我知道一种使用 Eclipse JDT 推断参数类型的方法,但是我如何使用 javaparser(https://github.com/javaparser/javaparser)和 javasymbolsolver(https://github.com/javaparser/javasymbolsolver)来推断参数类型。

在 Eclipse JDT 中,我刚刚在解析器环境中设置了源文件的路径,它就可以工作了。但是在javasymbolsolver中,即使我在typesolver中添加了源文件,它也不起作用。

0 投票
1 回答
879 浏览

java - java源码解析,查找具有完整类型的方法签名

我在用

javaparser ( https://github.com/javaparser/javaparser ) 和 javasymbolsolver ( https://github.com/javaparser/javasymbolsolver )。

解析java源代码。我希望从 .java 文件创建一个基本报告以列出方法签名,如果它们包含完整的 java 类型会很好。

javaparser 'visit' 演示和 javasymbolsolver 演示的基本合并也是如此,但我正在碰壁。

炸毁'getType'调用,与

这是(非工作)代码,

0 投票
1 回答
702 浏览

java - 使用 java 解析器编写 else if 语句

我有一个现有的 java 源代码。我正在使用 java 解析器(jar 名称 - javaparser-core-2.5.1.jar)修改这个 .java 文件。我需要添加一个 else if 语句块,例如:

需要添加带有条件 3 的 else if 语句。我怎样才能做到这一点?

0 投票
2 回答
687 浏览

java - 在自定义解析器中组合 Java 解析器以获取表达式

我正在尝试使用 java 表达式语句创建用于创建 HTML 模板的自定义域特定语言。

例如,它应该解析结合 java 语句的标签:

现在我知道如何编写这样的解析器了。但是,如果我可以只对表达式使用标准 Java Parser,那将非常简单,这样我就不必重新实现 Java Parser 的一部分。我想要实现的可能看起来像:

如何做到这一点以便scanner.parseJavaExpression解析任何 Java 表达式?

0 投票
2 回答
950 浏览

java - 在 JavaParser 中获取继承类的名称

在我的例子中,我有这样的事情:

使用 JavaParser 我想获取“扩展”关键字之后的类的名称。

我该怎么做?

在 JavaParser 的网站上,我发现了这样的内容:

还是应该在 visit() 方法中完成?

感谢您的建议。

0 投票
0 回答
36 浏览

java - JavaParser 可以识别 BufferedReader 的提要吗?

调用 JavaParser 后,我想访问/选择从 Sockets 或 ServerSocket 读取的所有 BufferedReader 对象。问题是 BufferedReader 的对象不是直接从它定义的,而是 InputStreamReader 的声明在那里。请注意,我不想访问从文件或其他任何内容中读取的 BufferedReader 对象,我只对从 Socket 读取的对象感兴趣。

例如:

在下面的两个代码块中,我希望访问者选择 bf1 而不是 bf2。

知道怎么做吗?

非常感激!

0 投票
1 回答
1241 浏览

java - javaparser UnsolvedSymbolException - 正在解析的类上使用的类,使用另一个未解析的类

我不确定我是否在标题中很好地描述了这个问题,但这里是背景:我想解析一个 java 源代码,比如 TestClassOne.java。

TestClassOne 使用另一个声明为实例变量的类“TestClassTwo”。现在,TestClassTwo 有一个类 TestClassThree 声明为实例变量。

所以现在,当我的目标类TestClassOne通过TestClassTwo获取TestClassThree的引用时,问题就出现了,因此下面的方法test():

这是例外:

这是我的代码:

测试类一:

测试类二:

测试类三:

我已将 TestClassThree 的目录添加为 combinedTypeResolver (见上文),但仍然无法正常工作:

这应该如何正确完成?

谢谢并恭祝安康!