具有范围限制的Java类构造函数参数
我是Java的新手,我想问这个问题只是为了帮助我更好地理解OOP。
假设我要定义一个名为“小时”的新类。要实例化该类,我们需要指定一个整数以指示该实例的小时数。
Hour hr = new Hour(16); // this means to define an hour that indicates 4pm.
因此,当我们在此处定义小时类别时,构造函数的参数应在[0,24)范围内。如果定义了超出此范围的参数,我们如何定义这样的参数?我可以抛出错误吗?
谢谢。
回答:
如果您希望 编译器 捕获错误,则可以为小时定义一个枚举,然后将其用作的构造函数的参数Hour
。但是,这可能会使Hour
该类无用。
public class Hours { _1, _2, _3, // etc.
}
public class Hour {
public Hour(Hours hour) { // no need for runtime check here, can not be wrong}
}
Hour hour = new Hour(Hours._3);
此技术可能不是最好的方法,但是通常最好依赖编译时检查,而不是运行时检查。
以上是 具有范围限制的Java类构造函数参数 的全部内容, 来源链接: utcz.com/qa/408071.html