你能得到的最接近的是
1)为您的值范围创建一个枚举,这就是Enums的用途.
public Enum MyVals {
ONE(1)
TWO(2)
...
private int val;
MyVals(int val) {
this.val = val;
}
}
Run Code Online (Sandbox Code Playgroud)
看到这个.当然,只有当值是离散的(即不是浮点数)时,这才有效
2)让这个领域变得私密,并写一个智能的设定器,它会破坏不可接受的价值.
public void setVal(int val) {
if (val < 0 || val > 10) throw....;
this.val = val;
}
Run Code Online (Sandbox Code Playgroud)
不,因为在编译时无法知道您的软件逻辑是否会产生超出范围的值。并且在运行时,原生 sdk 不支持它的实现。但是,您可以包装类型类(例如,MyInteger
使用Integer
实例创建类作为由类中的范围验证方法包装的成员MyInteger
)