我喜欢来自C#的“var”和来自Groovy的“def”,我发现在Java中编写类型是一种痛苦。
说我写的代码如下:
List<LongTypeName> results = new ArrayList<LongTypeName>();
或
Map<TypeNameOne,TypeNameTwo> someLookup = fetchMeMyLookup();
在Java + Eclipse中完成这项工作的最简单方法是什么?
我特别感兴趣的是,我不能100%确定开始这条线时的类型。
我当前的策略是始终将变量声明为“int”,然后返回到行的开头并执行“ctrl-1”,并接受Eclipse推断的类型。还有更好的选择吗?
我希望能够输入“def”或“var”并让Eclipse自动将其更正为正确的类型,只要它能够解决它。
(也许我应该只是在Groovy中编程)
答案 0 :(得分:5)
new ArrayList<LongTypeName>();
Ctrl+2+L
以创建新的本地变量两种类型都是“有效” - 您可以通过选项循环选择它们。在此示例中,名称提案是 list 和 arrayList ,类型提案是ArrayList<String>
,List<String
,{Collection<String>
的所有可能的接口和超类。 {1}}等等。
答案 1 :(得分:5)
类型:
someLookup = fetchMeMyLookup();
然后点击someLookup
并按Ctrl + 1快速修复“创建局部变量someLookup”
答案 2 :(得分:0)
Java 10 引入了局部变量的类型推断。
您现在可以使用特殊(保留)类型名称var
,例如:
var results = new ArrayList<LongTypeName>();
var someLookup = fetchMeMyLookup();
有关详细信息,请参阅JEP 286。