java17新特性:switch减少强转

switch减少强转

原代码:

interface Animal{}

class Rabbit implements Animal{
    //特有的方法
    public void run(){
        System.out.println("run");
    }
}

class Bird implements Animal{
    //特有的方法
    public void fly(){
        System.out.println("fly");
    }
}

现代码:

public class Switch01{
    public static void main(String[] args) {
        Animal a = new Rabbit();
        animalEat(a);
    }

    public static void animalEat(Animal a){
        switch(a){
            //如果a是Rabbit类型,则在强转之后赋值给r,然后再调用其特有的run方法
            case Rabbit r -> r.run();
            //如果a是Bird类型,则在强转之后赋值给b,然后调用其特有的fly方法
            case Bird b -> b.fly();
            //支持null的判断
            case null -> System.out.println("null");
            default -> System.out.println("no animal");
        }
    }
}

你可能感兴趣的:(java,开发语言,后端)