1. 개요
이 빠른 사용방법(예제)에서는 Reflection API 를 사용하여 메서드가 Java에서 정적 인지 아닌지 확인할 수 있는 방법에 대해 설명 합니다.
2. 예
이를 보여주기 위해 몇 가지 정적 메서드를 사용하여 StaticUtility 클래스를 만듭니다 .
public class StaticUtility {
public static String getAuthorName() {
return "Umang Budhwar";
}
public static LocalDate getLocalDate() {
return LocalDate.now();
}
public static LocalTime getLocalTime() {
return LocalTime.now();
}
}
3. 메서드가 정적 인지 확인
Modifier .isStatic 메서드를 사용하여 메서드가 정적 인지 아닌지 확인할 수 있습니다 .
@Test
void whenCheckStaticMethod_ThenSuccess() throws Exception {
Method method = StaticUtility.class.getMethod("getAuthorName", null);
Assertions.assertTrue(Modifier.isStatic(method.getModifiers()));
}
위의 예에서는 먼저 Class.getMethod 메서드 를 사용하여 테스트하려는 메서드의 인스턴스를 얻었습니다 . 메서드 참조가 있으면 Modifier.isStatic 메서드를 호출하기만 하면 됩니다.
4. 클래스의 모든 정적 메서드 가져오기
이제 메서드가 정적 인지 여부를 확인하는 방법을 이미 알았 으므로 클래스의 모든 정적 메서드를 쉽게 나열할 수 있습니다 .
@Test
void whenCheckAllStaticMethods_thenSuccess() {
List<Method> methodList = Arrays.asList(StaticUtility.class.getMethods())
.stream()
.filter(method -> Modifier.isStatic(method.getModifiers()))
.collect(Collectors.toList());
Assertions.assertEquals(3, methodList.size());
}
위의 코드에서 StaticUtility 클래스 의 총 정적 메서드 수를 확인했습니다 .
5. 결론
이 예제에서는 메서드가 정적 인지 아닌지 확인하는 방법을 보았습니다 . 또한 클래스의 모든 정적 메서드 를 가져오는 방법도 보았습니다 .