Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
推断Java/Eclipse中的变量类型,如C#&x27;s";var";_Java_Eclipse_Shortcuts_Var_Function - Fatal编程技术网

推断Java/Eclipse中的变量类型,如C#&x27;s";var";

推断Java/Eclipse中的变量类型,如C#&x27;s";var";,java,eclipse,shortcuts,var,function,Java,Eclipse,Shortcuts,Var,Function,我喜欢C#中的“var”和Groovy中的“def”,我发现用Java编写类型是一件痛苦的事情 假设我写的代码如下: List<LongTypeName> results = new ArrayList<LongTypeName>(); List results=new ArrayList(); 或 Map someLookup=fetchMeMyLookup(); 在Java+Eclipse中实现这一点最简单的方法是什么 我特别感兴趣的是,当我开始生产线时,我不能

我喜欢C#中的“var”和Groovy中的“def”,我发现用Java编写类型是一件痛苦的事情

假设我写的代码如下:

List<LongTypeName> results = new ArrayList<LongTypeName>();
List results=new ArrayList();

Map someLookup=fetchMeMyLookup();
在Java+Eclipse中实现这一点最简单的方法是什么

我特别感兴趣的是,当我开始生产线时,我不能100%确定类型

我当前的策略是始终将变量声明为“int”,然后返回到行的开头并执行“ctrl-1”,并接受Eclipse推断的类型。还有更好的选择吗

我希望能够键入“def”或“var”,并让Eclipse在找到正确的类型后立即自动将其更正为正确的类型

(也许我应该用Groovy编程)

  • 键入
    newarraylist()
  • 键入
    Ctrl+2+L
    以创建新的局部变量
  • 这两种类型都是“活动的”-您可以通过制表符对它们进行循环选择。在本例中,名称建议为list和arrayList,类型建议为
    arrayList
    ,:
    list类型的所有可能接口和超类:


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

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

    var results = new ArrayList<LongTypeName>();
    
    var someLookup = fetchMeMyLookup();
    
    var results=newarraylist();
    var someLookup=fetchMeMyLookup();
    

    有关详细信息,请参阅

    实际上你不需要第二步
    Ctrl-2l
    将光标放在分号之后(或者实际上,放在语句中的任何位置)。alt-shift-l也适用于我,并且更易于键入。我现在一直用这个--谢谢!“创建局部变量”选项是列表中的第一项,因此我几乎可以在不检查“快速修复”对话框的情况下按Ctrl-1 Enter键。很好。
    someLookup = fetchMeMyLookup();
    
    var results = new ArrayList<LongTypeName>();
    
    var someLookup = fetchMeMyLookup();