当前位置: 首页 > 知识库问答 >
问题:

如何使用javaparser添加类级变量声明?

邵毅
2023-03-14
class A{
    int x = 10;
}

这是A.java

我想得到Newa. java

class NewA{
    int x = 10;
    Sting text = "B";
}

我想使用javaparser添加一个变量。

共有1个答案

阮昊阳
2023-03-14

你需要这样做:

  1. 解析代码
  2. 找到要添加元素的点
  3. 添加您想要的元素
  4. 转储代码

第一点很简单,只需使用JavaParser即可。分析方法。您将获得一个CompilationUnit。在所示的示例中,您正在类声明中添加一个字段,因此需要首先获得该类声明。调用getTypes并在该列表中查找所需的声明,或者只调用getClassByName。

一旦有了类声明,就可以对其调用addMember。在您的示例中,您正在添加一个字段,因此需要实例化一个FieldDeclaration。

完成后,使用CompilationUnit并调用字符串。您将获得修改后的源代码。

来源:我是JavaParser提交者

 类似资料:
  • 我只想得到类级别的变量声明。如何使用javaparser获取声明? 使用javaparser必须获取变量“浏览器”的详细信息,例如浏览器的类型是“KeyWord”

  • 我能够使用以下代码获得类级变量的声明。但我只需要变量名。这是以下代码的输出-[私有布尔标志=true;]

  • 我正在分析的类: 我正在尝试使用MethodDeclaration获取变量名,但无法做到这一点。 我正在尝试获取此is的输出。 verifyAgeLimit():此。名称或名称 verifyAgeLimit():此。名称或名称 showAddress():此。地址或地址 我试图将整个方法转换为sting并读取字符串以找出名称,但它变得太复杂,而且精度也很低。 有什么办法可以解决吗?

  • react用vite搭建的项目 想要做代码提示,必须声明variables的类型,不想再像下面这样写一遍。 想直接根据scss中定义的变量生成类型声明,要怎么做?类似 但是因为variables是个cssmodule,而不是个具体的对象,上面的写法还是不行? 有没有好的方式解决?

  • 我需要创建一个新的JComboBox,但是由于我对三个不同的操作使用相同的JFrame,我需要将JComboBox名称作为参数传递 这是我现在拥有的代码: 如果我打印comboTipo,我可以阅读“Tienda.telasItems”或“Tienda.accesoriosItems”或“Tienda.aviosItems”。我希望在组合框声明中使用此文本,这样就不必创建决策结构 如果需要更多信息,

  • @PostMapping(“/api/v1.0/{username}/forgot”)是一个公共的void forgotPassword(@PathVariable String username,@RequestBody String enteredPassword,@request body strig reenterPassword){userServiceImpl.forgotPasswo