Joda의 AbstractInstant 인터페이스가 Comparable<AbstractInstant>
대신 원시 유형 Comparable
을 확장합니다. 이는 Java best practices을 위반하는 것으로 보입니다. 특히,이 같은 클래스를 매개 변수화 날짜 시간을 사용할 수 있다는 것을 의미한다 : Joda가 원시 형식 Comparable을 확장하는 이유는 무엇입니까?
class Foo<T extends Comparable<? super T>> {
public int ct(T a, T b) {
return a.compareTo(b);
}
}
그것은 (이것은 확실히, 더블로 등을 작동) 클래스의 이런 종류의 완벽 유효 나의 이해이었다.
@SuppressWarnings("unchecked")
class Foo<T extends Comparable> {
public int ct(T a, T b) {
return a.compareTo(b);
}
}
가의 목적을 위해 다른 클래스의 날짜 시간을 포장 해결 방법을 (제안하는 related question있다 :하지만, 그것은 날짜 시간으로 작동하도록하기 위해, 나는 쓰레기 내 원시 유형의 코드 및 억제 경고가 비교). 그러나 나는 그것이 왜 필요한지 알지 못합니다. 내 질문은 다음과 같습니다
- 사람이 Joda 원시 유형을 확장하는 이유를 알고 있나요, 또는
- 이 내가 도서관 관리자들에게보고해야 버그인가?
Jona 2.0은 generics를 지원하므로이 문제를 해결합니다. – Snekse