Modifier类
Class类以及后面将会讲的Field、Constructor、Method类都有一个getModifiers方法。该方法返回一个修饰符值,类型为int,不同的bit修饰符表示不同的含义。然后通过Modifier类的一些方法配合该修饰符可以获取到许多有用的信息。
下面展示Modifier类的一些常用方法(下面都是静态方法):
- String toString(int modifiers) 返回一个字符串,包含对于modifiers中位设置的修饰符(pubic/static/privite…)
- boolean isAbstract(int modifiers)
- boolean isFinal(int modifiers)
- boolean isInterface(int modifiers)
- boolean isNative(int modifiers)
- boolean isPrivate(int modifiers)
- boolean isProtected(int modifiers)
- boolean isPublic(int modifiers)
- boolean isStatic(int modifiers)
- boolean isStrict(int modifiers)
- boolean isSynchronized(int modifiers)
- boolean isVolatile(int modifiers)
下面看一个案例,获取一个类的相关信息:
package com.studyjava.demo;
import java.lang.reflect.*;
public class Demo6
{
public static void main (String[] args)
{
Class cl = Integer.class;
getClassInfo(cl);
}
private static void getClassInfo (Class cl)
{
Class superCl = cl.getSuperclass();
String name = cl.getName();
String superName = superCl == null ? "" : " extends " + superCl.getName();
int modifiers = cl.getModifiers();
String pre = Modifier.toString(modifiers);
if (pre.length() > 0) {
pre = pre +" class ";
} else {
pre = "class ";
}
System.out.println(pre + name + superName);
System.out.println("{");
System.out.println(" ......");
System.out.println("}");
}
}
执行后显示信息如下:
public final class java.lang.Integer extends java.lang.Number
{
......
}