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. 결론

이 예제에서는 메서드가 정적 인지 아닌지 확인하는 방법을 보았습니다 . 또한 클래스의 모든 정적 메서드 를 가져오는 방법도 보았습니다  .

항상 그렇듯이 이 예제의 전체 코드는 GitHub에서 사용할 수 있습니다 .

Junit footer banner