源码如下,当参数不是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;
}
巴扎黑2017-04-17 16:42:52
따라서 ComparaTo()
를 사용하여 캘린더
를 비교하세요.날짜
및 캘린더
는 불량으로 인식됩니다.
같은 질문 stackoverflow
<시간>그렇게 할 특별한 이유는 없다고 생각합니다. 불행하게도 java.util.Calendar에는 우리가 안고 가야 할 몇 가지 디자인 문제가 있습니다.
보충 사항:
Java8은 변경 불가능한 값을 가지며 스레드로부터 안전한 새로운 패키지 java.time을 구현합니다.
이전 API와의 대응