网站源码商城,东莞企业名录网,购物商城项目,数字创意设计包括哪些方面java jepJava 10即将发布#xff0c;RC Build可在此处获得 。 可在此处找到此发行版的目标功能。 在针对Java 10的所有JEP中#xff0c;开发人员社区中最有趣且最受关注的是286#xff1a;Local-Variable Type Inference 。 什么是局部变量类型推断#xff1f; 我们在Java… java jep Java 10即将发布RC Build可在此处获得 。 可在此处找到此发行版的目标功能。 在针对Java 10的所有JEP中开发人员社区中最有趣且最受关注的是286Local-Variable Type Inference 。 什么是局部变量类型推断 我们在Java 8中看到了Diamond运算符它允许我们编写 ListMap data new ArrayListMap(); 如 ListMap data new ArrayList(); 根据LHS的类型推断RHS的类型。 尽管在Java 9中已修复的匿名内部类中此方法确实起作用。 Java 10更进一步说明如下 ListMap data new ArrayList(); 可以写成 var data new ArrayList(); 局部变量类型推断允许开发人员跳过与局部变量在方法定义初始化块for循环和其他块如if-else中定义的变量中定义的变量关联的类型声明并且由JDK推断类型。 在哪里可以使用 让我创建一个示例类以显示使用局部变量推断var的不同方法 public class LegalLocalVarInferenceDemo{//in a static/instance initialization blockstatic {var anotherName Sanaulla;System.out.println(Hello, anotherName);}public static void main(String[] args){//as a local variablevar name Mohamed Sanualla;System.out.println(Hello name);var data new ArrayList();data.add(Map.of(key1, value1, key2, value2));data.add(Map.of(key11, value11, key22, value22));data.add(hello);System.out.println(data);System.out.println(********** As iteration variable in enhanced for-loop ***************);for ( var object : data){System.out.println(String.format(%s of type %s, object, object.getClass().getName()));}System.out.println(********** As looping index in for-loop ***************);for ( var i 0 ; i data.size(); i ){var object data.get(i);System.out.println(String.format(%s of type %s, object, object.getClass().getName()));}System.out.println(********** As a return value from another method ***************);var anInteger someAnotherMethod();System.out.println(someAnotherMethod returned anInteger);}//As a return value in a methodpublic static Integer someAnotherMethod(){System.out.println(someAnotherMethod called);var returnObj 12;return returnObj;}}无法使用的地方 让我创建另一个示例类该类显示如何无法使用var public class IllegalLocalVarInferenceDemo{//Not permitted in class fields//var someProperty;//Not allowed as parameter for constructor// public LocalVarInferenceDemo(var param1){// }public static void main(String[] args){//Not allowed in catch parameter// try{// //some operations// }catch(var ex){// }}//Not permitted below//public static void someMethod(var param1, var param2){// System.out.println(Some method called);//}//Not permitted in method return type// public static var someAnotherMethod2(){// System.out.println(someAnotherMethod called);// var returnObj 12;// return returnObj;// }
}样例代码 该示例可以在GitHub上找到 翻译自: https://www.javacodegeeks.com/2018/03/java-10-jep-286-local-variable-type-inference.htmljava jep