我有很多Java 1.4代码,我正在将它们迁移到Java 5。我想修复所有关于在参数化类中使用原始类型的编译器警告,我想知道是否有一个工具可以自动转换如下内容:
List myList = new ArrayList();
myList.add("foo");
String foo = (String) myList.get(0);至:
List<String> myList = new ArrayList<String>();
myList.add("foo");
String foo = myList.get(0);我理解泛型是相当复杂的,因此不要期望这样的工具能够在所有情况下选择最正确的参数化类型。但是,只要它能够处理简单的情况(比如上面的情况),并且不会破坏我的代码,我就会满意。
类似地,我想将所有旧的skool循环更改为Java 5中引入的简化的for循环。
这样的工具存在吗?
发布于 2010-07-21 00:10:57
我会使用Eclipse来做这件事。
选择需要升级的包结构,然后右键单击-> Refactor -> Infer Generic Type Arguments
我想这是你需要的一个起点。
发布于 2010-07-21 00:08:56
我认为对你来说最安全的事情就是为你的方法添加一个@SuppressWarning(“rawtypes”)注释。由于您的代码已经在1.4 (我假设)中进行了测试,并且以这种方式插入通用的like语法可能会导致出现一些讨厌的bug。您可以使用其他values来抑制警告。
您还可以将此批注添加到类中
@SuppressWarnings("rawtypes")
public class MyClass {}尽管我想不出有什么工具可以做到这一点。
至于for循环,在编写新代码时,使用新的" for“循环是有意义的。因为这样更容易。为什么要改变老式的循环呢?来吧,它的语法并不是那么糟糕,当然也不难理解:)
https://stackoverflow.com/questions/3291947
复制相似问题