自动转换java源代码使用泛型而不是原始类型

时间:2010-04-01 14:26:39

标签: java generics

是否有一种方法/工具可以自动将Java源代码从使用原始类型转换为使用泛型类型?

我有一些遗留代码,对原始类型有677个引用:

ArrayList   47
Vector      420
Hashtable   61
Enumeration 64
Class       7
Iterator    78
TOTAL       677

现在我可以手动查看代码来推断泛型类型并替换,但这需要很长时间。

2 个答案:

答案 0 :(得分:2)

Eclipse确实有一个'推断泛型类型'重构工具(我不知道它是否会在一次点击中处理多个类,但可能)。

  

替换原始类型的出现次数   参数化类型的泛型类型   在确定所有地方之后   这种替换是可能的。   可用:项目,包和   类型选项:'假设克隆()   返回接收器的实例   类型'。一般表现良好的班级   尊重这条规则,但如果你知道的话   您的代码违反了它,取消选中   盒子。

     

'保留不受约束的类型参数   原始的(而不是推断)'。如果   对此没有任何限制   例如, ArrayList a,取消选中   这个盒子会让Eclipse静止不动   提供通配符参数,   用。替换参考   ArrayList中。

答案 1 :(得分:1)

IntelliJ也有Refactor |泛型化。它在五年前运作得相当不错,所以我认为它现在已经不差了!