메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 java 프로그래밍

뇌를 자극하는 java 프로그래밍 질의응답 게시판입니다.

제너릭(Generic)에 대해서...

2013-01-07

|

by seejune

2779

뇌자극 책에는 제너릭에 대한 구체적인 설명은 없네요....
그래서 아래와 같이 한 번 만들어 봤습니다....

class MyGeneric
{
    T width, height;

    MyGeneric(T width, T height)
    {
        this.width = width;
        this.height = height;
    }
    public T getArea()
    {
        return  = width * height;  <= 연산자(*) 오류 발생
        //     return  = width;  <= 오류 없음.
    }
    T getWidth()
    {
        return width;
    }
}

class GenericTest
{
    public static void main(String args[])
    {
        MyGeneric g;

        g = new MyGeneric(12, 34);
        System.out.println("면적: " + g.getArea());
    }
}

위와 같이 만들어 컴파일을 하면 다음과 같은 오류가 발생합니다.
C:\교육\자바교육>javac GenericTest.java
GenericTest.java:14: error: bad operand types for binary operator *
        val = width * height;
                    ^
  first type:  T
  second type: T
  where T is a type-variable:
    T extends Object declared in class MyGeneric
1 error

위 오류에 대해 구글링등을 해 보았는데 return = width * height; 와 같이 쓰는 사례는 못 보았습니다.
제너릭에서는 연산 허용이 안되는지요? 아니면 제가 잘 못 코딩을 했는지요?
왜 아래와 같은 결과가 나오는 지 궁금합니다....

        return  = width * height;  <= 연산자(*) 오류 발생
        return  = width;              <= 오류 없음.

감사합니다..
댓글 입력