现在我们可以编写var x = new HashMap<String,String>();而不是更冗长,Map<String,String> x = new HashMap<String,String> ();并且有关类型的信息不会重复.它比通用实例创建的Java 7类型推断领先一步,即钻石.
的使用var是可能的方法的范围仅(故名:内局部变量),它允许仅在类型可以推断的发言(因此后缀:类型推断).
解析var语句,Java 10编译器从右侧(RHS)表达式推断出类型.这意味着声明使用的变量var需要立即分配,甚至是:
var readMe;
readMe = "notAGoodVariableName";
Run Code Online (Sandbox Code Playgroud)
或这个:
var readMe = null;
Run Code Online (Sandbox Code Playgroud)
不被允许.
此外,请注意,因为它使代码不那么明确,如果在语句中使用var x = getCapitalized('abc'),它可能会为代码阅读器造成混淆.
最后,var不是关键字,而是保留类型名称.不是关键字可确保所有遗留应用程序不会中断.但作为保留类型名称仍然意味着将存在单个断点,并且遗留应用程序将必须重命名所有类别/接口,这些类别/接口在升级到Java 10时完全命名为var(非常罕见且反命名约定的情况).
正确使用它需遵循一些规则,因此请阅读以下内容:
http://openjdk.java.net/jeps/286
https://developer.oracle.com/java/jdk-10-local-variable-type-inference
| 归档时间: |
|
| 查看次数: |
246 次 |
| 最近记录: |