Class
- Class对象
Class cls = int.class; System.err.println(cls); cls = byte.class; System.err.println(cls); cls = String[][].class; System.err.println(cls); cls = void.class; System.err.println(cls); - Class对象的比较操作
if (e.getClass() == Employee.class)
获取Class对象的三种方式
知道一个类,直接获取Class对象
Class<?> cls1 = ReflectionActivity.class;如果已经得到了某个对象,可以通过这个对象获取 Class 对象
ReflectionActivity activity = new ReflectionActivity(); Class<?> cls2 = activity.getClass();如果你在编译期获取不到目标类型,但是你知道它的完整类路径,那么你可以通过如下的形式来获取 Class 对象,这样获取可能会抛出异常 ClassNotFoundException
try {
Class<?> cls3 = Class.forName("com.sun.study.ui.activity.ReflectionActivity");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
资源加载
资源可以有子目录,可以是相对路径也可以是绝对路径;如果资源文件在JAR包中也可以被定位到;
InputStream stream = Appliction.class.getResourceAsStream("config/source.txt");
API
- isAssignableFrom(Class cls) 用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口;
- public static Class forName(String className) 返回描述类名为className的Class对象
- toString()
public String toString() { return (isInterface() ? "interface " : (isPrimitive() ? "" : "class ")) + getName(); } - public T newInstance()
返回类的实例

isArray()
User user = new User();
System.err.println(User.class.isArray());
System.err.println(User[].class.isArray());