JavaでのGregorianCalendarにメソッドを追加する方法はありますか?
-
18-09-2019 - |
質問
私は「isBetween」と呼ばれる方法がGregorianCalendarの日は他の二人の間に入る場合見て、ブール値を返すようにしたいと思います。また、私はクラスの<と>の演算子を定義したいと思います。私は、Javaにはかなり新しいので、私はわからないんだけど....私もそれらのいずれかを行うことができますか?もしそうなら、どのように?
解決
Javaはmonkeypatchingや演算子のオーバーロードをサポートしていますが、GregorianCalendar
をサブクラス化し、必要なものは何でもメソッドを追加すること自由に感じていません。
しかし、その後、あなたが本当にcal.after(startCal) && cal.before(endCal)
を行うための新しい方法が必要なのですか?
他のヒント
いいえ、あなたは、メソッドに既存のクラスを追加することはできませんし、いずれかのJavaで演算子オーバーロードを行うことはできません。
別の方法として、あなたは、たとえば、独自のクラスの静的なユーティリティメソッドを提供することができます。
私はのに対して、のクラスを拡張助言する - あなたはどのGregorianCalendar
に適用可能であるロジックを表現する(あるいは任意のしている、特定のクラスのインスタンスに固有の任意の動作を追加していませんすべてのカレンダー)。
は、ユーティリティクラスの静的メソッドは、進むべき道である - とJavaは、これまでのC#(私は、彼らは、Java 7のために提案されたけど、私はを考えるごとに拡張メソッドを獲得した場合、の彼らは、その時点でそれらを変更することができます)現時点で外出ます。
ああ、とにかくジョダ時間に使用します)。
あなたはそれを拡張しようとする必要があります:
class MyGregorianCalendar extends GregorianCalendar