Generic Erasure

java core 2009. 2. 24. 03:19

jdk5 부터 지원되는 generic을 컴파일하고 ,jad로 역컴파일하면, generic 코드부분은 완젼 사라져 있다.

이것을 erasure 라고 한다.

자바가 erasure라는 것을 사용하는 것은 바로 java runtime 환경에 backwards compatibility  때문이다. generic이 생기전에 먼저 jvm이 생겼음을 생각해 보자.

 

이런 generic을 왜 지원하게 될까? 그것은 runtime때 일어나는 부주의한 실수조차 없게 하기 위함이다. 하지만, 이렇게 자주 사용하게 되면, 반발이 많이 일어날 수 있다. 불필요한 수준의 타입 명시로 인해서 개발비용은 늘어날 수도 있다.

 

아마도 이 만든 사람은 Static Typed language를 지원함으로서, classcasetexception이 일어나지 않도록 도와주려고 한거 같은데. 그 마음 누가 알랴?

 

 

 

참조

http://www.mindview.net/WebLog/log-0060

http://lastmind.net/blog/2007/01/effective-java-reloaded.html

 

 

'java core' 카테고리의 다른 글

exception시 어떻게 되는가?  (0) 2009.03.05
PermGen에서의 OutOfMemoryError 발생 대처하기  (0) 2009.02.25
Java Profiling API 공부 시작..  (0) 2009.02.20
아파치 세션이 계속 있다??  (0) 2009.02.20
jstack  (0) 2009.02.20
Posted by '김용환'
,