자바의정석(2)
-
JAVA - 메타 애너테이션
메타 애너테이션 - 메타 애너테이션은 '애너테이션을 위한 애너테이션' - 메타 애너테이션은 java.lang.annotation 패키지에 포함 @Target -애너테이션을 정의할 때, 적용대상 지정에 사용 @Target({FIELD, TYPE, TYPE_USE}) @interface MyAnnotation {} // 애너테이션을 정의 @Retention -애너테이션이 유지(retention)이 되는 기간을 지정하는데 사용 class는 잘 안씀. -컴파일러에 의해 사용되는 애너테이션의 유지 정책은 SOURCE이다. @Target(ElementType.MEHOTD) @Retention(RetentionPolicy.SOURCE) // 컴파일러가 읽어낸다음은 필요가 없기때문에 클래스파일에서 빠진다. 소스 파일에..
2020.09.26 -
자바 지네릭스 - 2020.07.24
지네릭스 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크(compile-time type check)를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입안정성을 높이고 형변환의 번거로움이 줄어든다. 타입 안정성을 높인다는 것은 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준 다는 뜻이다. 예를 들어, ArrayList와 같은 컬렉션 클래스는 다양한 종류의 객체를 담을 수 있긴 하지만 보통 한 종류의 객체를 담는 경우가 더 많다. 그런데도 꺼낼 때 마다 타입체크를 하고 형변환을 하는 것은 아무래도 불편할 수 밖에 없다. 게다가 원하지 않는 종률..
2020.07.25