java - 为什么Calendar类的before,after方法的参数是Object类型的?
PHP中文网
PHP中文网 2017-04-17 16:40:52
0
1
841

源码如下,当参数不是Calendar的实例时返回的是false,但请问这样的比较有意义吗?
我个人觉得参数类型是不是不妥?比如我拿Date类型去做比较,不抱任何错,但其实永远返回的都是false

public boolean before(Object when) {
    return when instanceof Calendar
        && compareTo((Calendar)when) < 0;
}

public boolean after(Object when) {
    return when instanceof Calendar
        && compareTo((Calendar)when) > 0;
}

//我认为这样比较合理
public boolean after(Canlendar when) {
    return compareTo(when) > 0;
}
PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(1)
巴扎黑

したがって、Calendar を比較し、ComparaTo()

Date は一般的に悪いものとして認識されます。 Calendar同じ質問スタックオーバーフロー

特別な理由はないと思いますが、残念ながら java.util.Calendar には、対処しなければならない設計上の問題がいくつかあります。


補足:

Java8 は、不変でスレッドセーフな新しいパッケージ java.time を実装します。

内の主なクラスと形式は次のとおりです。 API対応は従来と同様です

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート