이 질문은 구가 어렵 기 때문에 몇 가지 코드 샘플을 사용해야 할 것입니다. 기본적으로, 나는 오버로드 된 마지막 매개 변수 3 개를 취하는 (오버로드 된) 메서드를 가지고있다. 마찬가지로, 마지막 매개 변수는 String
이고, 때로는 double
등입니다. 마지막 매개 변수로 삼항 조건식을 사용하여이 메서드를 호출하여 특정 값에 따라 double 또는 a를 전달합니다. 끈. 다음은 그 예입니다 ...Java에서 메소드 호출 매개 변수 중 하나에 대해 조건부 유형을 허용하도록하려면 어떻게해야합니까?
오버로드 방법 헤더 :
The method writeToCell(int, int, double) in the type MyType is not applicable
for the arguments (int, int, Object&Comparable<?>&Serializable)
:
writeToCell(2, 4, myValue != null ? someDouble : someString);
이것은, 그러나, 컴파일 오류가 발생합니다 : 내가 할 노력하고있어
writeToCell(int rowIndex, int colIndex, double value)
writeToCell(int rowIndex, int colIndex, String value)
Java가 "충분히 똑똑하지 않다"(또는 단지 목적에 맞게 기능이 구현되지 않은 것 같습니다) 그녀의 선택권에는 그것을 지원하는 방법이있다. 내 질문은 - 이것을 할 방법이 있습니까? double (String) (예 : writeToCell(2, 4, myValue != null ? someDouble.toString() : someString);
)을 전달하여 시뮬레이션 할 수 있지만이 메서드는 double 데이터 형식으로 받아 들여야합니다.
로직은 Java가이 문장을 받아들이도록 강요 할 수는 없다고 말합니다 ...하지만 나에게 훨씬 명확한 코드가 나오므로 시도해 볼 가치가 있습니다. 누구든지이 일을하는 방법을 알고 ...?
네이티브 형식을 개체와 함께 사용할 수 없습니다. 그것들을 박스에 넣는다. –