본문 바로가기

제너릭2

제너릭 메소드 제너릭 메소드를 만들다 문법이 잘 기억이 나질 않아 테스트 코드를 작성해 보았다.내가 헷갈려 했던 부분은 다음의 코드에서 T 부분이였다. public T getObj(String objKey, Class type) { 정리를 하자면 는 메소드 아규먼트에 타입 매개변수 T가 선언되어 있으면 추가되어야 하는 것이고, 그 옆에 있는 T 는 return type을 의미한다.이제 정리가 되었으니 테스트 코드를 작성해 보자. 테스트 코드는 Map 객체에 저장되어 있는 특정 클래스 type을 추출하는 방식이다.첫 번째 방법은 제너릭을 사용하지 않은 방법이고, 두 번째 방법은 제너릭을 사용한 방식이다. 코드를 보면 알겠지만 첫 번째 방법은 Map에 저장되어 있는 객체를 추출하기 위해서 여러 개의 메소드를 생성해야 추출.. 2014. 3. 1.
자바의 제너릭이 생기게 된 이유? 자바 1.5에서부터 제너릭 기능이 추가 되었다. 내가 아는 제너릭은 타입 캐스팅의 비용을 줄이고, 런타임시에 발생하는 오류를 줄이며, 가독성이 좋은 코드를 만들기 위해 나온 기술이라고 알고 있다.또 한 가지 제너릭을 통해 메소드의 return 타입의 제약을 해소하고, 타이트하게 문법을 체크하는 정적 타입 언어의 특성에서 동적 타입 언어와 같은 느슨한 스타일의 언어로 변화되기를 원하는 것 같다. 정적 타입 언어는 IDE툴을 이용하여 컴파일 타임에 문법 체크 및 오류를 사전에 발견할 수 있는 장점이 있다. 그러나 문법의 타이트한 체크로 인해 코드양이 많아진다.이런 단점을 자바에서는 제너릭을 이용해 해소하고 있다. 동적 언어는 런타임 시에만 문법 오류를 확인할 수 있고, 강력한 개발 도구도 많지 않다.또한 동.. 2012. 12. 27.