본문 바로가기
IT/Java

Java의 Generic(제너릭) 원리(간단정리)

by Jeami 2013. 6. 25.
반응형



Java Generic 원리

사진출처 : http://www.zimbio.com

Java를 비롯한 모든 프로그래밍 언어를 공부하고 응용하는데 있어서 이런 마음가짐으로!! 씹어먹겠다는 마음가짐으로!! 하지만 100% 이해보다는 흘러가는 흐름을 잡아가며!! 초보자의 길을 걷다보면 곧 길을 걷는 방법도 찾는 방법도 발견하게 될거라고 생각합니다!!


이번 시간에는 Java Generic의 원리에 대해 조금 더 살펴보도록 하겠습니다. 기본적인 내용은 앞서 포스팅 된 글을 통해 말씀드렸습니다만, 한번 더 상기하면 좋을 부분들에 대해 말씀드리려고 합니다.

아래의 예를 한번 살펴보도록 하겠습니다.





추천은 블로거에게 큰 힘이 됩니다. 로그인 필요없이, 아래의 손가락을 한번씩만 클릭해주시면 감사하겠습니다^^


===== Kor<String> Type의 클래스 사용

Kor<String> t = new Kor<String>() ;

t.setData(str1) ;

String str2 = t.getData() ;


===== Java Generic 처리방식

Kor t = new Kor() ;

t.setData(str1) ;

String str2 = (String)t.getData() ;



Kor<String>을 사용했을 때 Java 컴파일러는 <String>을 삭제해버리고 필요한 곳에 캐스팅을 자동으로 넘겨줍니다. 자바컴파일러가 Generic을 어떤식으로 처리하느냐를 말씀드리는 부분입니다.

<Sring> 이런식으로 < > 안에 Generic Type을 덧붙여주는 것이 Generic 이라는 것인데, Java에서의 Generic 처리방식은 앞서 선언되어 있는 Generic Type Class를 사용할 때 <>이렇게 표현되어 있는 Generic Type을 삭제처리 해줍니다. 완전히 지워버리게 됩니다. 

Generic Type으로 선언된 것을 사용 할 때 이미 선언된 형에 상관없이 프로그래머가 사용하고자 하는 Type을 넣어줌으로써 사용하는 것을 확인하실 수 있을 겁니다.

String str2 = (String)t.getData() ;

이 부분에서 말이죠^^


====================================================================

<T>,<String>,<Integer>,<Class명>

위와 같은 방식으로 Generic을 사용하는 것입니다. 

프로그래밍 할 때에도 위와 같은 코드를 가끔 보게 되는데요. 실제로 Generic을 굳이 사용하지 않아도 표현가능한 방법이 많이 있어서 가끔 접하게 되는 코디가 되어 버립니다. 하지만, Generic을 사용할 때 여러가지 편의성이 있어서 일부러 사용하는 경우도 있으니까 반드시 이런 형태의 코드는 알아두어야만 하겠지요^^

Generic은 다형성이 적용되는 특징도 갖습니다. 바로 부모의 참조변수로 자식의 참조변수를 참조할 수 있다는 것입니다. 다형성의 개념!! Java에서 아무리 강조해도 지나치지 않는 개념이겠죠? 이것이 자바의 묘미일테니까요^^


간단하게나마 Generic의 원리에 대해 정리해보았습니다.

포스팅 글을 다시 한번 보니 정말 많이 부족함을 느낍니다. ㅠㅠ

갑자기 비가 많이 쏟아지네요. 장마기간이라서 날씨뉴스를 빠짐없이 체크해두심이 좋을 것 같네요^^



반응형

'IT > Java' 카테고리의 다른 글

awt 기본(화면 띄우기)  (0) 2013.08.07
Interface(인터페이스)  (0) 2013.07.01
Generic 제너릭  (0) 2013.06.25
Java 다차원 배열  (0) 2013.06.24
Java 배열 매개변수  (0) 2013.06.23

loading