Java中的Class对象
Java中的Class对象- -
Java程序在运行时每个类都会对应一个Class对象,可以从Class对象中得到与类相关的信息,例如:
-----------------------------------------------------------------------
public class MyClass {
public static void main(String[] args) {
String name = "ZhuJun";
Class c = name.getClass();
System.out.println("getName: " + c.getName());
System.out.println("isInterface: " + c.isInterface());
System.out.println("isPrimitive: " + c.isPrimitive());
System.out.println("isArray: " + c.isArray());
System.out.println("SuperClass: " + c.getSuperclass().getName());
}
}
输出结果:
getName: java.lang.String
isInterface: false
isPrimitive: false
isArray: false
SuperClass: java.lang.Object
-----------------------------------------------------------------------
对于简单类型boolean, byte, char, short, int, long, float, double以及关键字void,可以通过类常量class取得对应的Class对象,例如:
-----------------------------------------------------------------------
public class MyClass {
public static void main(String[] args) {
System.out.println(boolean.class.getName());
System.out.println(boolean.class.isPrimitive());
System.out.println(void.class.getName());
}
}
输出结果:
boolean
true
void
-----------------------------------------------------------------------
Class类有一个forName()静态方法,可以根据传入的类名称(Class Name)得到相应类的实例,例如:
-----------------------------------------------------------------------
class TestClass {
void say(){
System.out.println("This is instance of TestClass"):
}
}
public class Main {
public static void main(String[] args) {
try {
Class c = Class.forName("TestClass");
TestClass testClass = c.newInstance();
testClass.say();
}
catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
}
输出结果:
This is instance of TestClass