Java의 Null 인수에 대한 오버로드 해결
Java의 오버로드된 메서드에 null을 인수로 전달할 때 어떤 메서드를 사용하는지 이해하는 것이 중요합니다. 호출 대상으로 선택됩니다.
다음 사항을 고려하세요. 예:
JOptionPane.showInputDialog(null, "Write something");
JOptionPane.showInputDialog의 두 가지 오버로드된 메서드가 존재합니다.
이들 중 어떤 오버로드가 될까요? null을 상위 매개변수로 전달할 때 호출됩니까?
답변:
Java는 "가장 구체적인 방법"이라는 원칙에 따라 오버로드를 해결합니다. 이 경우 가장 구체적인 방법은 다음과 같습니다.
showInputDialog(Component parent, Object message)
이 규칙은 오버로드 해결 프로세스, 특히 "메서드 서명 결정"으로 알려진 단계에서 파생됩니다. 컴파일러는 입력 유형(이 경우 null 및 String)을 처리할 수 있는 가장 구체적인 메서드를 검색합니다.
"더 구체적인" 메서드는 하나의 오버로드 호출을 다른 오버로드 없이 전달할 수 있는지 여부에 따라 결정됩니다. 컴파일 타임 유형 오류가 발생합니다. 이 예에서 첫 번째 오버로드 호출은 오류 없이 두 번째 오버로드에 전달될 수 있지만 그 반대는 불가능합니다.
따라서 JOptionPane.showInputDialog에 null을 전달할 때 Component 상위 매개변수( 가장 구체적인 방법)이 호출 대상으로 선택됩니다.
위 내용은 Null 인수가 전달될 때 Java는 오버로드된 메서드를 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!