是否有一种方法/工具可以自动将Java源代码从使用原始类型转换为使用泛型类型?
我有一些遗留代码,对原始类型有677个引用:
ArrayList 47
Vector 420
Hashtable 61
Enumeration 64
Class 7
Iterator 78
TOTAL 677
现在我可以手动查看代码来推断泛型类型并替换,但这需要很长时间。
答案 0 :(得分:2)
Eclipse确实有一个'推断泛型类型'重构工具(我不知道它是否会在一次点击中处理多个类,但可能)。
替换原始类型的出现次数 参数化类型的泛型类型 在确定所有地方之后 这种替换是可能的。 可用:项目,包和 类型选项:'假设克隆() 返回接收器的实例 类型'。一般表现良好的班级 尊重这条规则,但如果你知道的话 您的代码违反了它,取消选中 盒子。
'保留不受约束的类型参数 原始的(而不是推断)'。如果 对此没有任何限制 例如, ArrayList a,取消选中 这个盒子会让Eclipse静止不动 提供通配符参数, 用。替换参考 ArrayList中。
答案 1 :(得分:1)
IntelliJ也有Refactor |泛型化。它在五年前运作得相当不错,所以我认为它现在已经不差了!