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

Sam*_*Sam 5 java generics

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

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

ArrayList   47
Vector      420
Hashtable   61
Enumeration 64
Class       7
Iterator    78
TOTAL       677
Run Code Online (Sandbox Code Playgroud)

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

Kev*_*Day 2

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

在识别出所有可能进行替换的位置后,用参数化类型替换泛型类型的原始类型出现。可用:项目、包和类型选项:“假设clone()返回接收器类型的实例”。行为良好的类通常会遵守此规则,但如果您知道您的代码违反了此规则,请取消选中该框。

“保留不受约束的类型参数原始(而不是推断)”。如果对例如 ArrayList a 的元素没有限制,则取消选中此框将导致 Eclipse 仍提供通配符参数,用 ArrayList 替换引用。

  • 发现您可以右键单击一个项目并在“重构”菜单下选择它。 (2认同)