问题标签 [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 投票
1 回答
263 浏览

java - 如何区分方法中 MethodCallExpr 中的两个方法?

现在我使用下面的代码来提取方法内部的方法调用

现在在这里我如何区分这两个方法调用add(1, 2)add(1.2, 2.5)methodA中使用MethodCallExpr

0 投票
0 回答
105 浏览

java - Java解析器。如何将 jpa 转换为 POJO

我有 JPA 实体

我有课

我也有班级专栏。

告诉我将我的实体映射到对象表的最佳方法。我尝试用 javaParser 来做,但结果是惨败 =(

0 投票
1 回答
660 浏览

java - 使用 javaparser 获取方法语句

是否可以获得没有注释的方法语句列表,我使用过method.getBody(),这是输出

我只想发表声明是这样的结果

0 投票
5 回答
2495 浏览

java - Java 反射:如何获得评论?

我在 Java 解析方面遇到了一些困难。我需要以某种方式通过反射获得类、字段、方法等的评论。

我找到了 JavaParser,它看起来可以引发评论,但我不知道如何去做,因为所有示例都只是解析给定的字符串。我发现TypeSolver它可以采用规范名称,但看起来它不能与评论一起使用。

Class<?>我的问题是如果我只有并且该项目还有其他一些jar's也应该自省的评论,如何找到评论。通过调试,我看到了原始源代码,看起来可以以某种方式完成。
谢谢。

PS我有源代码,我需要Class<?>与源代码匹配,然后通过JavaParser提取注释

0 投票
1 回答
670 浏览

java - com.github.javaparser.JavaParser 找不到

我想在 Eclipse 中将 javaparser 与我的插件一起使用。我可以使用/导入除一个之外的所有 JavaParser-Core 类。JavaParser 类导致错误。我怎样才能解决这个问题?

这是控制台输出;

0 投票
1 回答
1396 浏览

java - Java:如何使用 JavaParser 获取 Java 类的标识符数量

我想使用 JavaParser 来获取 java 类具有的标识符的数量。

我下载了 JavaParser jar 文件并将其添加到我的项目中,然后,我按照其中的一些说明进行操作,现在我能够以编程方式解析一些 Java 类并使用ClassOrInterfaceDeclaration类似.getMethods().getMembers()等的方法...

现在,我想知道如何获取每个类中的标识符数量。没有.getIdentifiers()办法,那我应该采取什么办法呢?

0 投票
1 回答
1007 浏览

java - JavaParser 不会在包声明之前删除注释

我正在编写一个从 Java 文件中删除注释的 Java 应用程序。

我写了这段代码:

它有点工作。但是,如果包声明之前有块注释,则代码不会删除这些注释。

例如,这段代码:

变成这样的代码:

它是来自 JavaParser 的错误,还是我遗漏了什么?

编辑:

如果我在文件的开头放置一行注释,则第一个块注释(包声明之前的那个)将被删除,但不会删除此行注释。我认为 JavaParser 不认为文件的第一行可能是注释。

0 投票
1 回答
148 浏览

java - JavaParser:如何添加新的语言元素

我想创建一个 Java 转译器,它将读取几乎 Java 代码(称为 JavaHash)并在另一端发出“纯”Java 代码。特别是,我想在 hashmap 成员前面添加一个新的标记“#”,这样我就可以像访问 JavaScript 哈希对象一样访问它:

我无法让 JavaParser 执行任何操作,只能在“#”标签上抛出错误。

有没有办法在解析令牌之前捕获它们?

0 投票
1 回答
546 浏览

java - 使用 JavaParser 更改方法级别的字符串变量

我想使用 JavaParser 将 Java 源代码中的所有 String 变量值从任何值更改为"".

我可以更改全局变量的值,但无法更改方法级别变量的值。

环顾四周,我从这个这个答案中得到了帮助,现在我可以得到每个方法中每一行代码的值,如下所示:

tmp现在,如果它是一个字符串声明,我该如何更改它的值?

0 投票
1 回答
240 浏览

java - 如何使用 Javasymbol 求解器获取注解限定名称?

我正在编写一个基于 JavaParser 的库,使用 Javasymbol 求解器来解析源文件上的类名。我正在尝试获取类和方法注释的合格类名,但目前我无法获取它们。

我目前的代码是:

但抛出异常:

java.lang.ClassCastException:com.github.javaparser.symbolsolver.javassistmodel.JavassistInterfaceDeclaration 无法在 com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(JavaParserFacade.java :265) 在 jlivedoc.collector.specifications.collectors.MultiProjectCollectorSpecifications.analyzeClass(MultiProjectCollectorSpecifications.java:86) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 在 sun.reflect .DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners 。模型。ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)在 org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 在 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 在 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57 ) 在 org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 在 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 在 org.junit.runners.ParentRunner.runChildren(ParentRunner. java:288) 在 org.junit.runners.access$000(ParentRunner.java:58) 在 org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 在 org.junit.runners。ParentRunner.run(ParentRunner.java:363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run( TestExecution.java:38) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java: 760) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460) 处junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760) 在 org.eclipse.jdt.internal.junit.runner。 RemoteTestRunner.run(RemoteTestRunner.java:460) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760) 在 org.eclipse.jdt.internal.junit.runner。 RemoteTestRunner.run(RemoteTestRunner.java:460) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

知道我做错了什么吗?我正在使用 javaparser 3.6.5 和 javasymbol 求解器 0.6.3

谢谢你们