我们正在使用Java(1.7)进行申请,我有以下培训课程:
public class Train {
private String number;
private String origin;
private String destination;
public Train(String number, String origin, String destination) {
//set the fields
}
//other fields
private int latenessAtOriginInMinutes;//optional Field
//getters and setters
}
当我实例化对象latenessAtOriginInMinutes
时,假设字段Train train = new Train(1234, "A", "B")
是可选的,
对于latenessAtOriginInMinutes
引用的对象,int
将获得值0(这是train
类型的默认值),
那么我怎样才能区分“迟到'是真的为零还是由JVM设置的默认值(原始int
)?
解决此问题的一种方法是首先通过构造函数设置latenessAtOriginInMinutes=99999
(某些高默认值),
但每当我从数据库中检索值时,我需要检查值是否为latenessAtOriginInMinutes != 99999
以找到我不喜欢的实际迟到值。
另一种方法是在Java8中使用OptionalInt
,但我们目前正在使用Java 1.7。
另一种选择是将latenessAtOriginInMinutes
类型声明为整数,但我不确定这是否是最佳选择。
所以,我的问题是,处理latenessAtOriginInMinutes
等可选字段的最佳方法是什么?