使用Java反射检查静态方法
本文讨论如何通过Java反射检查静态方法。
1. 为了演示,我们定义包含几个静态方法的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();
}
}
2. 检查和获取静态方法
2.1 检查静态方法
我们可以通过 Modifier.isStatic()
检查静态方法:
@Test
void whenCheckStaticMethod_ThenSuccess() throws Exception {
Method method = StaticUtility.class.getMethod("getAuthorName", null);
Assertions.assertTrue(Modifier.isStatic(method.getModifiers()));
}
我们首先通过 Class.getMethod
方法获得method实例,然后调用 Modifier.isStatic
方法。
2.2 获取静态方法
已经能够检查静态方法,列出类中所有静态方法也就比较容易了。
@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());
}
上面示例中,我们仅过滤出静态方法。
3. 总结
本文通过简单示例介绍如何检查类的静态方法,以及如何列出所有静态方法。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/108808038