你将不得不创建一个自定义的数据类型,只能取值0,1和2.你不能使用普通的int.
在这种情况下,您可以使用enum:
enum ZeroOneOrTwo {
ZERO(0),
ONE(1),
TWO(2);
public final int val;
private ZeroOneOrTwo(int val) {
this.val = val;
}
}
Run Code Online (Sandbox Code Playgroud)
并按如下方式使用:
void myMethod(ZeroOneOrTwo arg) {
System.out.println("Int value: " + arg.val);
}
Run Code Online (Sandbox Code Playgroud)
如果你被迫接受一个int参数(例如,如果你正在实现一个接口),那么IllegalArgumentException如果给定的值超出范围,你可以求助于抛出一个参数.但通常你会想让编译器捕获问题而不是在运行时处理它.