gpt4 book ai didi

java - 在 JDT 中将 ArrayAccess 替换为 MethodInitation

转载 作者:行者123 更新时间:2023-12-02 04:51:09 26 4
gpt4 key购买 nike

我需要转型

xyz[3].aaa[1].bbb[2].jjj

getXyz(3).getAaa(1).getBbb(2).getJjj()

使用JDT核心。

用一些 getter 方法替换 ArrayAccess 没有帮助,因为访问的数组访问如下:-

xyz[3].aaa[1].bbb[2]
xyz[3].aaa[1]
xyz[3]

因此,仅将 ArrayAccess 替换为 getter 会丢失一些替换内容。

我尝试的另一个选择是访问 FieldAccess 但这样做我留下了类似的东西

getXyz(3).getAaa(1)[1].getBbb(2)[2].getJjj()

是否有办法替换 [1] 或 [2],或者更确切地说,是否可以解析并获取 aaa[1]、bbb[2] 来删除或替换?

最佳答案

如果很难在一次传递中完成所有更改,最简单且“最好理解”的解决方案是将代码更改分解为多个传递。通过一次我的意思是:

  1. 解析 AST
  2. 进行不会覆盖自身的更改
  3. 应用编辑

所以这意味着您将重新解析每次传递的代码。这样做的缺点是性能会下降很多。

将更改分解为多次传递的一种方法可能是首先找到所有数组声明,然后仅对该数组进行更改。

关于java - 在 JDT 中将 ArrayAccess 替换为 MethodInitation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29225527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com