Java方法限制枚举类型的可能值。

bluesky1年前 ⋅ 122 阅读

ChatGPT的回答仅作参考:

可以使用Java的泛型来限制方法参数的枚举类型。例如,下面的代码演示了一个方法,它只接受Weekday枚举类型的参数:

```
public static <T extends Enum<T> & Weekday> void printWeekday(T weekday) {
    System.out.println("Today is " + weekday);
}
```

在这个方法中,我们使用了泛型类型参数T来限制参数的类型。T必须是一个枚举类型,并且必须实现Weekday接口。这样,我们就可以确保方法只接受Weekday枚举类型的参数。

使用这个方法的示例代码如下:

```
printWeekday(Weekday.MONDAY); // 输出:Today is MONDAY
printWeekday(Weekend.SATURDAY); // 编译错误:Weekend不是Weekday的子类型
```

在第一个调用中,我们传递了一个Weekday枚举类型的参数,因此方法可以正常工作。在第二个调用中,我们传递了一个Weekend枚举类型的参数,但是它不是Weekday的子类型,因此编译器会报错。

全部评论: 0

    相关推荐