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

如何在多个java类中自动修改代码?

温开畅
2023-03-14

我有一个对象层次结构或树,我想做两件事:

  1. 对于每个节点,使每个公共字段私有并生成getter和setter。
  2. 在映射中保存树的所有状态,这样每次在其中一个节点上调用setter或getter时,它就会转到映射,而不会从节点本身保存或检索状态。我这样做的方法是将对映射的引用注入树中的每个节点,并让setter和getter在映射上操作。

我想知道是否有办法自动修改我的代码来做到这一点。我知道IntelliJ可以使类中的所有公共字段都是私有的,并为一个文件生成getter和setters,但是有可能为许多人这样做吗?有可能自动执行我概述的第二个修改吗?

共有2个答案

周阳波
2023-03-14

您可以使用ByteBuddy来实现这一点。

汪驰
2023-03-14

可以使用用于getter/setter的IntelliJ模板来实现这一点。这是一个非常清晰的伪代码工具,用于创建自定义代码生成机制。请看这个问题,以便更清楚地理解

 类似资料:
  • 问题内容: 您是否曾经用Java 创建或遇到过自我修改的代码?如果是,请发布链接或直接发布代码。 问题答案: 忽略悲伤世界,您可能会通过自我修改代码(!)导致自己陷入困境,在我看来,这里有3种选择: 使用Java 6的内置编译器支持以及写入/重新编译/重新加载类 使用Apache BCEL字节码操作库直接编写您的类 利用Java 6的内置脚本支持(或使用Apache BSF)以您选择的JVM脚本语

  • 我对python和编程都是新手,所以我很迷茫。我已经编写了一个“Node”类(如下文底部所示),它实例化了一个二叉搜索树和几个方法,如insert()和elements()(通过按顺序横切树返回元素列表)。我应该使这个类是可迭代的:“iter__(self)应该返回一个NodeIterator,它按照排序顺序从树中返回元素。修改树不应该修改现有的迭代器。”我现在正试图通过在类中插入以下代码来实现这

  • 问题内容: 我需要在Java中更改JSON属性的值,我可以正确获取该值,但无法修改JSON。 这是下面的代码 做这个的最好方式是什么? 问题答案: 是不可变的,旨在进行解析操作。但是,可以将其转换为允许突变的(和): 对于数组,可以使用:

  • 这不是如何配置主题选项的副本,从这样的答案中可以清楚地看出。 我想修改或调整当前设置,意思是:我想加载当前配置的内容。例如,当前为配置的值,以便能够稍微调整它,比如使颜色更亮。 当我在中加载此键时,我看到默认为红色(),这显然不是主题所拥有的。 我知道我可以 1) 打开 2) 找到设置和 3) 复制/粘贴我的用户设置。但我正在寻找一种更友好/更简单的方法。 有没有更友好/更简单的方法?如何在我的用

  • 问题内容: 我的数据以以下格式存储(向下看):[-]表示空白单元格,右边可能只有10列(空格后)。像这样的东西: [string0] [-] [string1] [string2] [string3] .. [string10] [-] 如何为以下代码更改此代码: 1)仅获取[string0] 2)仅获取[string1] [string2] [string3] .. [string10] [-]

  • 问题内容: 假设我有一个整数集,并且我想增加集合中的每个整数。我该怎么做? 我可以在迭代时添加和删除集合中的元素吗? 在迭代原始集合时,是否需要创建一个新集合以将元素“复制并修改”到其中? 编辑:如果集合中的元素是不可变的呢? 问题答案: 您可以在迭代期间使用Iterator对象安全地从集合中删除;尝试在迭代时通过其API修改集合会破坏迭代器。Set类通过getIterator()提供一个迭代器。