티스토리 뷰

public class MergeExample {
    private Object input;

    // 첫 번째 코드에서 제네릭 메서드로 merge()를 선언한 경우
    public <T> void merge(T newInput) {
        if(newInput instanceof Number && input instanceof Number) {
            double result = ((Number) input).doubleValue() + ((Number) newInput).doubleValue();
            System.out.println(result);
        }
        else {
            System.out.println(input.toString() + newInput.toString());
        }
    }

    // 두 번째 코드에서 제네릭 메서드로 merge()를 선언하지 않은 경우
    public void merge(T newInput) {
        if(newInput instanceof Number && input instanceof Number) {
            double result = ((Number) input).doubleValue() + ((Number) newInput).doubleValue();
            System.out.println(result);
        }
        else {
            System.out.println(input.toString() + newInput.toString());
        }
    }

    public static void main(String[] args) {
        MergeExample example = new MergeExample();

        // 제네릭 메서드로 merge() 호출 (첫 번째 코드)
        example.<Integer>merge(5); // 타입을 명시적으로 지정
        example.<Double>merge(3.5); // 타입을 명시적으로 지정

        // 제네릭 메서드로 merge() 호출하지 않은 경우 (두 번째 코드)
        // 컴파일 오류 발생: 제네릭 메서드로 선언되지 않았기 때문에 타입을 지정할 수 없음
        // example.merge(5); // 컴파일 오류 발생
        // example.merge(3.5); // 컴파일 오류 발생
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함