[java] 잘못된 타입 인수로 인한 컴파일 오류 탐지

예를 들어, 다음 add 메서드와 main 메서드가 있는 간단한 클래스를 고려해 보겠습니다.

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
    
    public double add(double a, double b) {
        return a + b;
    }
    
    public static void main(String[] args) {
        Calculator calc = new Calculator();
        
        int result1 = calc.add(10, 20);  // int형 add 메서드 호출
        double result2 = calc.add(10.5, 20.5);  // double형 add 메서드 호출
        double result3 = calc.add(10, 20);  // 컴파일 오류! 
    }
}

위의 예제에서 calc.add(10, 20)int형 파라미터를 받는 add 메서드를 호출하고, calc.add(10.5, 20.5)double형 파라미터를 받는 add 메서드를 호출합니다. 그러나 calc.add(10, 20)은 정수 리터럴로 int 타입의 값을 전달하기 때문에 add 메서드의 시그니처와 정확히 일치합니다. 이는 올바르게 동작하지 않지만, 자바에서는 컴파일 오류를 발생시킵니다.

이러한 강력한 타입 검사는 프로그램 안전성을 높이고 실수를 줄여주는데 도움을 줍니다.

참고자료: