有没有办法在Java中向GregorianCalendar添加方法?

时间:2010-03-09 14:20:30

标签: java comparison operators operator-overloading gregorian-calendar

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

4 个答案:

答案 0 :(得分:6)

Java不支持monkeypatching或运算符重载,但可以自由地继承GregorianCalendar并添加所需的任何方法。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我建议反对扩展类 - 你没有添加任何特定于特定类的实例的行为,你表达的逻辑适用于任何GregorianCalendar (或者可能是任何日历)。

正如Joachim所说,实用程序类中的静态方法是要走的路 - 如果Java按照C#获得扩展方法(我知道它们是针对Java 7建议的,但我认为他们现在出去了)你可以在那时修改它们。

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

答案 3 :(得分:0)

你应该尝试扩展它:

class MyGregorianCalendar extends GregorianCalendar