在Java / Eclipse中推断变量类型,比如C#的“var”

时间:2011-10-20 14:47:08

标签: java eclipse shortcuts var function

我喜欢来自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中编程)

3 个答案:

答案 0 :(得分:5)

  1. 输入new ArrayList<LongTypeName>();
  2. 键入Ctrl+2+L以创建新的本地变量
  3. 两种类型都是“有效” - 您可以通过选项循环选择它们。在此示例中,名称提案是 list arrayList ,类型提案是ArrayList<String>List<String,{Collection<String>的所有可能的接口和超类。 {1}}等等。

    screenshot

答案 1 :(得分:5)

类型:

someLookup = fetchMeMyLookup();

然后点击someLookup并按Ctrl + 1快速修复“创建局部变量some​​Lookup”

答案 2 :(得分:0)

Java 10 引入了局部变量的类型推断。 您现在可以使用特殊(保留)类型名称var,例如:

var results = new ArrayList<LongTypeName>();

var someLookup = fetchMeMyLookup();

有关详细信息,请参阅JEP 286