up:: 编程技术 MOC
tag::Java语言特性
接口中允许私有方法
Java 8 使用了default
关键字,可以在接口中实现方法。假如要在 default
方法之间共用同一份代码,java 8 中需要将代码提到公共的 default
方法中调用。
问题能解决,但是却不符合接口的原则,将不必要的方法暴露出去会给调用者带来困扰。Java 9 开始接口支持使用 private
方法,代码如下:
try-with-resource 优化
try-with-resource
也是老朋友了,在 java 7 引入的,能够帮我们自动关闭流,简化代码块。
Java 7 的 try-with-resource
当 try 括号后面的包裹的代码太多,就会变成一坨很臃肿,代码如下:
Java 9 之后,代码如下:
简化了很多,但是请注意变量虽然声明在 try 外面,但是作用范围只在 try 包裹的代码块中,try 外面使用变量会导致运行时产生错误。实例代码:
下划线 _
不再是有效标识符
Java 9 之前可以将 _
设置为变量,虽然编译器会警告,但运行不会报错。
Java 9 之后,编译器会提示
菱形符号 <>
升级
Java 7 引入 <>
让编译器推断构造器参数类型
Java 9 对类型推断进一步增强,支持匿名内部类的参数推断,实例代码如下: