java如何使用重构从类中删除泛型类型
我有这门课:
public class TimeIntCo<T> extends TimeValueCo<Integer>
{
}
我决定不再需要T类型,也不再在类中使用它(我知道它总是整数)
然而,我有很多类似于TimeIntCo<Integer>
的类的引用
有没有一种方法可以使用Eclipse重构来删除T
类型,而不会在引用中导致任何错误
我的意思是一步到位,而不是找到&;替换
编辑:更清楚地说——如果我只是从类中删除T
,我有大约10000个错误,我不想手动执行,我更喜欢不使用find&;替换,因为我认为重构更安全。
# 1 楼答案
我怀疑这是否有重构。只需删除
<T>
,保存文件,然后检查并修复可能导致的任何编译错误。(如果未使用T
类型参数,则不应存在任何要更正的编译错误…)@ohadshai评论:
我敢打赌,大多数问题都可以通过更改少量子类声明来解决
不,我不知道。重构通常用于保留原始源代码含义的简单转换。这种转变不太可能做到这一点
# 2 楼答案
只需执行文本查找/替换
TimeIntCo<Integer>
->TimeIntCo
在所有java类上# 3 楼答案
如果T没有为您提供任何好处,请将其从类声明中删除:
它可以安全地保留在父类
TimeValueCo
中# 4 楼答案
在Eclipse中使用正则表达式搜索和替换(搜索|文件): 搜索:
SomeClass\<.*\>
并替换为:SomeClass
。 必要时对子类重复上述步骤# 5 楼答案
引入一个超类
并更改
TimeIntCo
以扩展它然后使用Eclipse的重构->;尽可能使用超类型