使用Java中的反射檢查是否是static方法

1.概述

在本快速教程中,我們將討論如何通過使用Reflection API static

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.檢查方法是否static

我們可以使用Modifier .isStatic方法來檢查某個方法是否是static

@Test

 void whenCheckStaticMethod_ThenSuccess() throws Exception {

 Method method = StaticUtility.class.getMethod("getAuthorName", null);

 Assertions.assertTrue(Modifier.isStatic(method.getModifiers()));

 }

在上面的示例中,我們首先使用Class.getMethod方法獲得了要測試的方法的實例。有了方法參考後,我們只需要做的就是調用Modifier.isStatic方法。

4.獲取一個類的static

既然我們已經知道如何檢查某個方法是否是static ,那麼我們可以輕鬆地列出一個類的static

@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 static方法的總數。

5.結論

在本教程中,我們已經看到瞭如何檢查方法是否static 。我們還看到瞭如何獲取類的所有static方法。