JDK16新特性
1.instanceof的增强
代码示例
package com.wxit.jdk16;
/**
* @Author wj
*
**/
public class Test01 {
public static void main(String[] args) {
//之前
Object num = 123;
if (num instanceof Integer){
Integer integer = (Integer) num;
System.out.println(integer);
}
//新特性
if (num instanceof Integer integer){
System.out.println(integer);
}
if (num instanceof Integer && (Integer)num > (Integer)110){
System.out.println(num);
}
}
}
上述代码解读:
在JDK16之前,如果num等于Integer类型,咱们再把num转换成Integer,然后才能使用所转换后的对象integer,而在16以后,可以判断num是否等于Integer,如果等于,把它赋值给integer,满足条件,即可打印输出。
2.recoed
代码示例
package com.wxit.jdk16;
/**
* @Author wj
*
**/
public class Test02 {
public static void main(String[] args) {
Person person = new Person("吴杰",20);
System.out.println(person.name);
System.out.println(person.age);
System.out.println(person);
}
record Person(String name,int age){
}
}
代码解读:
我们可以像类一样,给一个名称,并且可以给他设置几个初始化的参数,然后,recoed就编写成功了,然后就可以在类中去使用了
recoed就相当于我们声明了一个类,并且给这个类声明了get/toString的方法,
3.新的Api
针对于DateTimeFormatter
代码示例
package com.wxit.jdk16;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
/**
* @Author wj
**/
public class Test03 {
public static void main(String[] args) {
System.out.println(DateTimeFormatter.ofPattern("B").format(LocalTime.now()));
}
}