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