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