在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_值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()方法+为了更好的名字。太好了。正是我想要的。接受并加上了。太好了。正是我想要的。接受并加上。