zoukankan      html  css  js  c++  java
  • java9语法变更

    java9的更新主要是新增的jigsaw的模块化系统,语法上并没有很大的变化,这里简单记录语法上的变化并附上案例。

    try-with-resources

    jdk7中引入try-with-resources由语言自身管理closable资源的关闭

    Resource resource1=new Resource();
    try(Resource r1 = resource1){
    }
    

    jdk9中使用时可以进一步省去在try语句中定义Resource r1

    Resource resource1=new Resource();
    try(resource1){
    }
    

    这里resource1必须是final或效果等价于final的变量。

    @SafeVarargs

    SafeVarargs是用于标注在包含泛型入参的方法上,标识该方法不会出现类型安全问题,在JDK9之前,这个注解只能加在静态方法和final方法上(他们都不可被override),现在可以加在私有实例方法上了。

    匿名类可以使用泛型

    JDK9之前匿名类无法使用钻石描述符(即<>),在jdk9中对于可以明确类型的匿名类可以使用钻石描述符了:

        List<String> a=new ArrayList<>(){};	//可以编译
        a=new ArrayList<>(){}; 				//无法确定泛型类型无法编译
    

    禁用变量名“_”

    变量名不能是“_”。

    int _=1; //jdk9中报错
    

    接口的私有方法

    jdk8中在接口中可以加入static 方法

    interface Interface {
        static void method() {
        }
    }
    

    但该方法是public的没有办法在子类之间共享代码而不外露,jdk9中可以使用私有方法实现子类间的代码共享

    interface Interface {
        static void staticMethod() {
        }
    
        private void privateMethod(){
        }
    }
    class Instance implements Interface{
        void test(){
            Interface.super.privateMethod();
        }
    }
    
  • 相关阅读:
    蝴蝶书学习笔记
    Cordova + Vue开发混合app调研
    CodePush使用调研
    为备考二级C语言做的代码练习---辅导资料《C语言经典编程282例》--(1)
    C语言日期计算器
    Msfvenom 学习笔记与总结
    C语言 包含结构的结构
    C语言 结构体作为函数的参数
    C语言 指向结构体数组的指针
    C语言 指向结构体变量的指针
  • 原文地址:https://www.cnblogs.com/resentment/p/7819550.html
Copyright © 2011-2022 走看看