1
var x = new something();

我试图做到这一点,但 Eclipse 说

var 无法解析为类型

我可以在 Java 8 中使用什么类型?

4

3 回答 3

3

以下两个都应该工作:

  • Something x = new Something();
  • Object x = new Something();

除了Somethingand之外Object,您应该能够使用任何Something扩展自的类或任何Something实现的接口(直接或间接)。


开始阅读 Java 类型系统的工作原理可能是一个好主意。

于 2020-02-04T03:17:50.450 回答
2

该关键字是在 Java 10 中添加的,它告诉编译器从赋值运算符var右侧的值推断类型。=

这意味着以下是等价的,即编译器将生成完全相同的字节码:

var x = new something();

something x = new something();

仅供参考: something是一种类型(类、接口、枚举),Java 命名约定是类型名称以大写字母开头,因此应命名为Something.

于 2020-02-04T03:43:17.887 回答
0
    **Without var**
    String str = "Chaman Bharti";
    String substring = str.substring(7);
    System.out.println(substring);//Bharti
    System.out.println(substring.getClass().getTypeName());//java.lang.String

var 用于减少上一行中的锅炉代码我已经使用了两次字符串 RHS(右手边),而在下一行中我没有使用,因为编译器根据 LHS(左手边)的分配值进行推断。

    **With var**
    var str = "Chaman Bharti";
    var substring = str.substring(7);
    System.out.println(substring);//Bharti
    System.out.println(substring.getClass().getTypeName());//java.lang.String
于 2020-11-18T05:15:34.117 回答