case EAST -> System.out.println(this.getBrand() + "正在往东方向前进");java中有这种语法吗
时间: 2024-04-15 14:28:08 浏览: 57
在Java中,switch语句中的case标签只能用于常量表达式,不能直接使用方法调用或变量。
如果你想根据枚举值执行不同的逻辑,可以在枚举类型中定义一个抽象方法,并在每个枚举常量中实现该方法。然后,在switch语句中使用枚举常量调用对应的方法。下面是一个示例:
```java
enum Direction {
NORTH {
@Override
public void printDirection() {
System.out.println("正在往北方向前进");
}
},
EAST {
@Override
public void printDirection() {
System.out.println("正在往东方向前进");
}
},
SOUTH {
@Override
public void printDirection() {
System.out.println("正在往南方向前进");
}
},
WEST {
@Override
public void printDirection() {
System.out.println("正在往西方向前进");
}
};
public abstract void printDirection();
}
public class EnumSwitchExample {
public static void main(String[] args) {
Direction direction = Direction.EAST;
switch (direction) {
case NORTH:
direction.printDirection();
break;
case EAST:
direction.printDirection();
break;
case SOUTH:
direction.printDirection();
break;
case WEST:
direction.printDirection();
break;
default:
System.out.println("Invalid direction");
break;
}
}
}
```
在上面的示例中,我们定义了一个Direction的枚举类型,表示方向,并在其中定义了一个抽象方法printDirection()。每个枚举常量都实现了该方法,并根据具体的方向输出不同的信息。
在main方法中,我们声明并初始化了一个Direction类型的变量direction,并将其设置为EAST。然后,在switch语句中,我们使用direction调用printDirection()方法来输出相应的信息。
这样,通过在枚举类型中定义抽象方法并在每个枚举常量中实现,可以实现类似于你提到的需求。
阅读全文