Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Java] 메타정보를 관리하는 Class객체, 리플렉션을 통한 리소스 경로 얻기 본문
𐂂 리플랙션
자바 클래스와 인터페이스의 메타정보를 Class객체로 관리한다.
(메타정보: 패키지정보, 타입정보, 멤버정보[생성자, 필드, 메서드])
메타정보를 프로그램에서 읽고 수정하는 행위를 '리플랙션'이라고 한다.
(메타정보: 패키지정보, 타입정보, 멤버정보[생성자, 필드, 메서드])
메타정보를 프로그램에서 읽고 수정하는 행위를 '리플랙션'이라고 한다.
Class clazz = [클래스이름].class;
Class clazz = Class.forName("패키지... 클래스이름");
Class clazz = 객체참조변수.getClass();
clazz.getName() //ch12.sec11.exam01.Car
clazz.getPackage().getName() //ch12.sec11.exam01
clazz.getSimpleName() //Car
𐁍 java.lang.reflect
⭐. 생성자, 필드, 메서드에 대한 선언부 경로를 제공한다
Constructor[] constructors = clazz.getDeclaredConstructors();
Field[] fields = clazz.getDeclaredFields();
Method[] methods = clazz.getDeclaredMethods();
for(Field field : fields) {
System.out.println(field.getType().getName());
System.out.println(field.getName());
}
for(Method method : methods) {
method.getParameterTypes();
method.getName();
}
𖠃 리소스 경로 얻기
Class객체는 클래스 파일의 경로정보를 가지고 있다.
이 경로를 기준으로 상대경로에 있는 다른 리소스 파일의 정보를 얻을 수 있다.
.getResource(String name): 리소스 파일의 URL리턴
.getResource(String name).getPath(): URL 객체의 절대경로를 리턴
이 경로를 기준으로 상대경로에 있는 다른 리소스 파일의 정보를 얻을 수 있다.
'Backend > 자바' 카테고리의 다른 글
[Java] 타입파라미터를 가지는 제네릭 타입 및 제네릭 메서드 (0) | 2023.08.12 |
---|---|
[Java] 어노테이션과 어노테이션 적용대상 및 유지정책 (0) | 2023.08.12 |
[Java] 정규표현식(regExp)과 Pattern 클래스로 검증 (0) | 2023.08.09 |
[Java] 날짜 시간 클래스 LocalDateTime과 형식클래스 DateTimeFormatter (0) | 2023.08.09 |
[Java] JDBC드라이버 의존성을 추가하고, Connection 객체를 생성해 ConnectionPool 구현하기 (0) | 2023.08.06 |
Comments