Modifier 类中 isX 系列方法,可以用来判断访问修饰符。
例如:
- isPublic 是否有 public 修饰符
- isPrivate 是否有 private 修饰符
- isProtected 是否有 protected 修饰符
- isStatic 是否有 static 修饰符
- isFinal 是否有 final 修饰符
- isSynchronized 是否有 synchronized 修饰符
- isVolatile 是否有 volatile 修饰符
- isTransient 是否有 transient 修饰符
- isNative 是否有 native 修饰符
- 等等
示例
判断字段是否为 static
代码示例:
package org.example;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class Main {
public static class UserInfo {
private String name01;
protected String name02;
String name03;
public String name04;
private static String name11;
protected static String name12;
static String name13;
public static String name14;
}
public static void main(String[] args) {
for (Field field : UserInfo.class.getDeclaredFields()) {
boolean isStatic = Modifier.isStatic(field.getModifiers());
System.out.printf("%s 是否为 static: %s\n", field.getName(), isStatic);
}
}
}
执行结果:
name01 是否为 static: false
name02 是否为 static: false
name03 是否为 static: false
name04 是否为 static: false
name11 是否为 static: true
name12 是否为 static: true
name13 是否为 static: true
name14 是否为 static: true
判断函数是否为 static
代码示例:
package org.example;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Main {
public static class UserInfo {
public String getName01() {
return null;
}
public static String getName02() {
return null;
}
}
public static void main(String[] args) {
for (Method method : UserInfo.class.getDeclaredMethods()) {
boolean isStatic = Modifier.isStatic(method.getModifiers());
System.out.printf("%s 是否为 static: %s\n", method.getName(), isStatic);
}
}
}
执行结果:
getName01 是否为 static: false
getName02 是否为 static: true