
ReflectionConstant::getName 메서드는 클래스의 정적 필드 이름을 반환합니다.
이 메서드를 사용하려면 클래스 내부에 static final 필드가 선언되어 있어야 합니다.
예를 들어, 다음과 같은 클래스가 있다고 가정해 보겠습니다.
#hostingforum.kr
java
public class MyClass {
public static final int MAX_VALUE = 100;
public static final String DEFAULT_VALUE = "default";
}
이 경우, ReflectionConstant::getName 메서드는 MAX_VALUE와 DEFAULT_VALUE의 이름을 반환할 수 있습니다.
#hostingforum.kr
java
System.out.println(ReflectionConstant.getName(MyClass.class, "MAX_VALUE")); // MAX_VALUE
System.out.println(ReflectionConstant.getName(MyClass.class, "DEFAULT_VALUE")); // DEFAULT_VALUE
반환할 이름이 없는 필드는 null을 반환합니다.
#hostingforum.kr
java
System.out.println(ReflectionConstant.getName(MyClass.class, "NON_EXISTENT_FIELD")); // null
그리고 필드가 private이거나 protected인 경우에도 메서드는 이름을 반환할 수 있습니다.
#hostingforum.kr
java
public class MyClass {
private static final int MAX_VALUE = 100;
protected static final String DEFAULT_VALUE = "default";
}
System.out.println(ReflectionConstant.getName(MyClass.class, "MAX_VALUE")); // MAX_VALUE
System.out.println(ReflectionConstant.getName(MyClass.class, "DEFAULT_VALUE")); // DEFAULT_VALUE
이 메서드는 클래스의 필드 이름을 반환하기 때문에, 필드가 클래스 내부에 선언되어 있어야 합니다.
#hostingforum.kr
java
public class MyClass {
public static class InnerClass {
public static final int MAX_VALUE = 100;
}
}
System.out.println(ReflectionConstant.getName(MyClass.class, "MAX_VALUE")); // null
이 경우, ReflectionConstant::getName 메서드는 InnerClass의 MAX_VALUE 필드 이름을 반환하지 못합니다.
따라서, 필드는 클래스 내부에 선언되어 있어야 하며, static final이어야 합니다.
2025-05-27 01:59