我有一大堆使用XXX类的Java代码。随着时间的推移,类的含义已经改变,名称不再合适。为了使代码更具可读性,我想将类的名称更改为YYY。
一个选项是在一次通过中编辑所有文件并将XXX更改为YYY,但该类的实际名称不是唯一的 - 还有其他类具有相同的名称,不同的包 - 所以我需要看看代码。我希望能够进行一些更改,测试它是否正确,并进行更改,再测试一些等等。在此过渡期间,我希望能够互换使用YYY和XXX。最终我会消除XXX。
我需要的是一个“别名”概念,我可以将YYY和别名设为XXX,但Java没有这个。
我可以使用所有相同的构造函数和方法使YYY成为XXX的子类。在变量声明为XXX的情况下,这将正常工作,并且我指定了YYY类型的值。它也可以在方法参数为XXX的情况下工作,并传递YYY。但是当参数声明为YYY并且我有一个要发送的XXX值时,它将无法正常工作。
我可以将YYY注入到继承中,因此XXX扩展了YYY,但是我遇到了与上面相同的问题:在混合使用XXX声明和YYY值的代码中存在问题。
过渡时间需要几个月。在这段时间里,我不关心性能或效率,我只需要编译并运行得足以进行测试。 有关最佳做法的建议,允许在Java代码体中逐步更改类名吗?
更新
下面的答案是虽然在Java中无法做到这一点,但也没有理由。我随后安装并重构了代码,并在此博客文章中写下了经验:Don’t Suffer Poor Names