
Reflection 클래스의 getModifiers() 메서드는 클래스, 인터페이스, 메서드, 필드, 생성자, 지역변수 등에 대한 접근 제어자(modifier) 정보를 반환합니다.
getModifiers() 메서드는 int 형태의 접근 제어자 정보를 반환하며, 이 정보는 다음과 같이 정의된 상수들로 구성됩니다.
- public : 1 (public 접근 제어자)
- private : 2 (private 접근 제어자)
- protected : 4 (protected 접근 제어자)
- static : 8 (static 접근 제어자)
- final : 16 (final 접근 제어자)
- volatile : 32 (volatile 접근 제어자)
- transient : 64 (transient 접근 제어자)
- synchronized : 128 (synchronized 접근 제어자)
- native : 256 (native 접근 제어자)
- interface : 512 (interface 접근 제어자)
- abstract : 1024 (abstract 접근 제어자)
- strictfp : 2048 (strictfp 접근 제어자)
이러한 접근 제어자 정보를 이용하여 클래스, 인터페이스, 메서드, 필드, 생성자, 지역변수 등에 대한 접근 제어자 정보를 얻을 수 있습니다.
예를 들어, 다음 코드는 Reflection 클래스를 사용하여 클래스에 대한 접근 제어자 정보를 얻는 방법을 보여줍니다.
#hostingforum.kr
java
import java.lang.reflect.Modifier;
public class Main {
public static void main(String[] args) {
Class<?> clazz = Main.class;
int modifiers = clazz.getModifiers();
if (Modifier.isPublic(modifiers)) {
System.out.println("public");
} else {
System.out.println("private");
}
if (Modifier.isStatic(modifiers)) {
System.out.println("static");
} else {
System.out.println("non-static");
}
}
}
이 예제에서는 Main 클래스의 접근 제어자 정보를 얻어 public, static 여부를 출력합니다.
2025-04-09 18:52