1

我想创建一个名为“isBetween”的方法,返回一个布尔值,查看 GregorianCalendar 日期是否介于其他两个日期之间。或者,我只想为类定义 < 和 > 的运算符。我对 Java 很陌生,所以我不确定....我什至可以做其中任何一个吗?如果是这样,怎么做?

4

4 回答 4

6

Java 不支持monkeypatching 或运算符重载,但您可以随意子类化GregorianCalendar并添加您需要的任何方法。

但是,您真的需要一种新方法cal.after(startCal) && cal.before(endCal)吗?

于 2010-03-09T14:25:55.353 回答
1

不,您不能向预先存在的类添加方法,也不能在 Java 中进行运算符重载。

作为替代方案,例如,您可以在自己的类中提供静态实用程序方法。

于 2010-03-09T14:22:58.150 回答
1

我建议不要扩展该类 - 您没有添加任何特定于特定类的实例的行为,您正在表达适用于任何GregorianCalendar(或可能任何日历)的逻辑。

正如 Joachim 所说,实用程序类中的静态方法是可行的方法 - 如果 Java 曾经获得按照 C# 的扩展方法(我知道它们被建议用于 Java 7,但我认为它们目前已经出局了)你可以在那个时候修改它们。

哦,无论如何都要使用Joda Time :)

于 2010-03-09T14:28:15.170 回答
0

您应该尝试扩展它:

class MyGregorianCalendar extends GregorianCalendar
于 2010-03-09T14:24:09.957 回答