在Java中,如何将对象与常量值进行比较?
我已经创建了自己的在Java中,如何将对象与常量值进行比较?,java,null,compare,equality,Java,Null,Compare,Equality,我已经创建了自己的MyDate类。它基本上用一些漂亮的toString()函数包装了一个Long值。我已经实现了equals()和compareTo()。我的程序读取一些数据并实例化包含这个MyDate类的类的对象。问题是,有时数据是坏的,所以我创建了一个公共静态final long NODATE=long.MIN_值
MyDate
类。它基本上用一些漂亮的toString()
函数包装了一个Long
值。我已经实现了equals()
和compareTo()
。我的程序读取一些数据并实例化包含这个MyDate
类的类的对象。问题是,有时数据是坏的,所以我创建了一个公共静态final long NODATE=long.MIN_值这样我就可以启动一个空的新实例(替换包含类中的null以避免NullPointerException)。我还实现了一个没有参数的构造函数,它将Long
值初始化为NODATE
我的问题是:
我想检查MyDate
是否值为NODATE
。我无法与NODATE
进行比较,因为它是Long
而不是MyDate
。一种方法是:
如果someObject.myDate.equals(new myDate())
但是仅仅为了进行比较而创建一个对象似乎是一种浪费?另一种方法是实现MyDate.amINoDate()
方法
还有别的办法吗?我正在考虑创建一个静态的MyDate
实例,该实例被初始化为NODATE并与之进行比较。但是我如何将我的非静态对象与这个静态对象进行比较呢
class MyDate {
public static final MyDate NODATE = new MyDate(Long.MIN_VALUE);
// ...
}
// ...
if (someDate.equals(MyDate.NODATE)) // ...
谢谢马斯卡科夫尼克
感谢maskacovnik。您还可以向MyDate添加方法,如:
public boolean isNodate() {
return internalLongDate == Long.MIN_VALUE;
}
您还可以向MyDate
添加方法,如:
public boolean isNodate() {
return internalLongDate == Long.MIN_VALUE;
}
将方法添加到MyDate:
if (someDate.isNoDate()) {
...
}
另外:就个人而言,我会避免Long.MIN_值并使用null。向MyDate添加一个方法:
if (someDate.isNoDate()) {
...
}
另外:就个人而言,我会避免Long.MIN_值并使用null。请发布代码。请发布代码。这是我参考的amINODATE()方法+1表示更好的名称。这是我引用的amINODATE()方法+为了更好的名字。太好了。正是我想要的。接受并加上了。太好了。正是我想要的。接受并加上。