이 질문에는 이미 답변이 있습니다.
여러 유형 (float, int, double 등)으로 전달되는 여러 함수가있는 상황이 있습니다. 현재 저는이 유형을 Float, Integer, Double 등으로 복싱하고 Object 매개 변수를 사용하는 하나의 함수로 전달합니다. 다음과 유사합니다.
private void handleInt(int val) {
//do something
addValue(new Integer(val));
}
private void handleFloat(float val) {
//do something
addValue(new Float(val));
}
private void handleDouble(double val) {
//do something
addValue(new Double(val));
}
private void addValue(Object val) {
//Do something with object val
//.compareTo needs to be called here to compare previous value
}
addValue에 전송 된 val 매개 변수를 배열에 저장 한 이전 매개 변수와 비교하고 싶습니다. 그러나 Object는 모든 다른 박스형 (Float, Integer, 등)의 기본 클래스이므로 Object를 확장하고 비교할 수있는 클래스를 직접 작성해야합니까?
그리고 내 compareTo 함수에서 어떻게 이것을 수행할까요?
addValue(val);
. Autoboxing이 나머지 부분을 처리합니다. - shmoselequals()
부족한? 모든 객체는 equals를 구현하고 서로 다른 유형을 비교할 수 있습니다. --- 2) 만약 당신이절대로 필요한 것친척 비교, 이전 유형의 값 비교 방법String
새로운 유형의 가치에 반하여Double
? - AndreasvalueOf()
보다는new
예를 들어addValue(Integer.valueOf(val));
이것은 오토 박싱이하는 것과 정확히 같습니다. - Andreas