获取Class对象的一些基本信息
方法 | class:类;object:对象 |
---|---|
obj.getClass() | String str = "abc"; Class c1 = str.getClass(); |
obj.getSuperClass() | |
静态方法 Class.forName() | Class c = Class.forName ("Java.lang.String"); |
在你想检查一个类的信息之前,你首先需要获取类的 Class 对象。Java 中的所有类型包括基本类型(int, long, float等等),即使是数组都有与之关联的 Class 类的对象。如果你在编译期知道一个类的名字的话,那么你可以使用如下的方式获取一个类的 Class 对象。
String className = ... ;//在运行期获取的类名字符串 Class class = Class.forName(className);
Java class 内部模块 | 说明 | 相应之Reflection API,多半为Class methods。 | 返回值类型(return type) |
---|---|---|---|
package | class隶属的package | getPackage() | Package |
import | class导入哪些classes | 间接获取 | |
modifier | class(或methods, fields)的属性 | int getModifiers() Modifier.toString(int) Modifier.isInterface(int) | int String bool |
class name or interface name | class/interface | getName() | String |
type parameters | 参数化类型的名称 | getTypeParameters() | TypeVariable <Class>[] |
base class | base class(只可能一个) | getSuperClass() | Class |
implemented interfaces | 实现有哪些interfaces | getInterfaces() | Class[] |
inner classes | 内部classes | getDeclaredClasses() | Class[] |
outer class | 如果我们观察的class 本身是inner classes,那么相对它就会有个outer class | getDeclaringClass() | Class |
上表中,列出了一些Java class内部信息的获取方式。所采用的方法几乎都是调用Class对象的成员方法(由此你就可以了解到Class类的用处了吧)。