Java中Class类方法使用浅析
1、 | public String toString() 源码:isInterface() ? "interface " : (isPrimitive() ? "" : "class ")) + getName(); 例如: System.out.println(User.class.toString()); |
2、 | public String toGenericString() 例如:
|
3、 | public static Class<?> forName(String className) 例如: Class<?> user = Class.forName("com.timeblog.model.User"); 如果参数是User的话是找不到那个类的,参数是包名+类名,返回的是一个类,默认就是初始化了的
|
4、 | public static Class<?> forName(String name, boolean initialize, ClassLoader loader) 方法返回与给定字符串名的类或接口的Class对象,使用给定的类加载器。指定的类加载器加载的类或接口。如果该参数加载器loader 为空,通过引导类加载器加载类。当类被初始化的初始化initialize参数为true,如果它没有被初始化。 例如: ClassLoader classLoader = User.class.getClassLoader(); |
5、 | public T newInstance() 例如: Class<?> aClass = Class.forName("com.timeblog.model.User"); |
6、 | public native boolean isInstance 这个对象能不能被转化为这个类 1、一个对象是本身类的一个对象 2、一个对象能被转化为本身类所继承类(父类的父类等)和实现的接口(接口的父接口)强转 3、所有对象都能被Object的强转 4、凡是null有关的都是false class.inInstance(null) 类名.class和对象.getClass()几乎没有区别,因为一个类被类加载器加载后,就是唯一的一个类。 例如: Person person = new Person(); Person继承了Human,实现了DoThingService接口,Main是其他不相关类 |
7、 | public native boolean isAssignableFrom 是从类继承的角度去判断,是判断是否为某个类的父类 例如: System.out.println(Human.class.isAssignableFrom(Person.class)); |
8、 | public native boolean isInterface() 是否是接口 例如: System.out.println(Person.class.isInterface()); |
9、 | public native boolean isArray() 是否是数组 例如: System.out.println(int[].class.isArray()); true |
10、 | public native boolean isPrimitive() 主要用来判断Class是否为原始类型(boolean、char、byte、short、int、long、float、double) 例如: System.out.println(int.class.isPrimitive()); |