0

이 질문에는 이미 답변이 있습니다.

여러 유형 (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이 나머지 부분을 처리합니다. - shmosel
  • 1) 왜 당신은상대적인즉,보다 작거나 /보다 크다. 왜?equals()부족한? 모든 객체는 equals를 구현하고 서로 다른 유형을 비교할 수 있습니다. --- 2) 만약 당신이절대로 필요한 것친척 비교, 이전 유형의 값 비교 방법String새로운 유형의 가치에 반하여Double? - Andreas
  • @shmosel과 동의하십시오. 그러나 명시 적으로하기를 원한다면 다음을 사용해야합니다.valueOf()보다는new예를 들어addValue(Integer.valueOf(val));이것은 오토 박싱이하는 것과 정확히 같습니다. - Andreas
  • 비교하고 싶습니다. 왜냐하면 서로가 똑같은 것보다 어느 것이 더 크거나 작은지를 확인하기를 원하기 때문입니다. - Hans Landa
  • @HansLanda 그럼 두 번째 요점을 어떻게 다루고 싶습니까? - Andreas

연결된 질문


관련된 질문

최근 질문