Java17新增的模式匹配
和学习视频中一模一样:
代码如下:
class Shape1 {
}
class Rectangle extends Shape1 {
}
class Triangle extends Shape1 {
private double area;
public Triangle(double area) {
this.area = area;
}
}
public class Switch模式匹配 {
public static void test(Shape1 shape) {
switch (shape) {
case Rectangle rect -> System.out.println("矩形");
case Triangle tri -> System.out.println("三角形");
default -> System.out.println("其他形状");
}
}
public static void test2(Shape1 shape) {
//当switch变量是Shape类型时,此时只可能是模式匹配的switch
switch (shape) {
case Rectangle rect :
System.out.println("矩形");
break;
case Triangle tri :
System.out.println("三角形");
break;
default :
System.out.println("其他形状");
}
}
public static void main(String[] args) {
test(new Rectangle());
}
}
代码爆红:
报错如下:
Java版本已经是17