1.获取Class对象的方式
1.1通过一个事物的个体(对象),来获取对应的Class对象
CouponService c=new CouponService(); Class<?> clas=c.getClass();
1.2 使用静态成员class获取Class对象
Class<?> clas=CouponService.class;
1.3使用Class类中的forName()方法获取给定类的Class对象
Class<?> clas=Class.forName("com.tanker.service.CouponService");
ClassLoader loader=Thread.currentThread().getContextClassLoader()//获取当前线程的类加载器
2.通过class对象的数据
- T newInstance()
此方法创建此Class对象表示的类的新实例。通过具有空参数列表的新表达式创建类。如果尚未初始化,则初始化该类。
- boolean isInstance(Object obj)
此方法确定指定的Object是否与此Class表示的对象分配兼容。它相当于java
中的instanceof
运算符
Class c = Class.forName("java.lang.String");
String url = "http://niocoder.com";
int i = 10;
boolean b1 = c.isInstance(url);
- boolean isAssignableFrom(Class<?> cls)
此方法确定此Class对象表示的类或接口是否与指定的Class参数表示的类或接口相同,或者是超类或超接口。
1.public class IsAssignableFrom extends Thread
2. Class myClass = Class.forName("com.niocoder.test.java.method.IsAssignableFrom");
Class c1 = Class.forName("java.lang.Thread");
boolean b1 = c1.isAssignableFrom(myClass); //为ture
3.继承或者实现关系为ture
- isInterface()
此方法确定指定的Class
对象是否表示接口类型
- boolean isPrimitive()
此方法确定指定的Class对象是否表示基本类型。即boolean , byte , char , short , int , long , float和double 。
- boolean isArray()
此方法确定指定的Class对象是否表示数组类。
- boolean isAnonymousClass()
当且仅当此类是匿名类时,此方法才返回true。匿名类与本地类类似,只是它们没有名称
- boolean isLocalClass()
当且仅当此类是本地类时,此方法才返回true。本地类是在Java代码块中本地声明的类,而不是类的成员。
当且仅当此类是Member类时,此方法返回true。
描述:
当且仅当此类在源代码中声明为枚举时,此方法才返回true
描述:
此方法确定此Class对象是否表示注释类型。请注意,如果此方法返回true,则isInterface()方法也将返回true,因为所有注释类型也是接口
返回由 类对象表示的实体(类,接口,数组类,原始类型或空白)的名称(含包明),作为 String 。
描述:
此方法返回源代码中给出的基础类的名称(不含包名)。如果基础类是匿名类,则返回空字符串
此方法返回此类的类加载器。如果类加载器是bootstrap类加载器,那么此方法返回null,因为引导类加载器是用C,C ++等本机语言实现的。如果此对象表示基本类型或void,则返回null
此方法返回一个TypeVariable对象数组,该对象表示由此GenericDeclaration对象表示的泛型声明声明的类型变量,按声明顺序
此方法返回表示此Class所表示的实体(类,接口,基本类型或void)的超类的Class。如果此Class表示Object类,接口,基本类型或void,则返回null。如果此对象表示数组类,则返回表示Object类的Class对象。
描述:
此方法返回表示此Class所表示的实体(类,接口,基本类型或void)的直接超类的Type。如果此Class表示Object类,接口,基本类型或void,则返回null。如果此对象表示数组类,则返回表示Object类的Class对象。
描述:
此方法返回由此对象表示的类或接口实现的接口。如果此对象表示不实现接口的类或接口,则该方法返回长度为0的数组。如果此对象表示基本类型或void,则该方法返回长度为0的数组。
描述:
语法 :
public Class<?>[] getInterfaces()
参数 :
NA
返回 :
an array of interfaces implemented by this class.
此方法返回此类的包。
描述:
测试类:
输出:
此方法返回一个Field对象数组,该对象反映此Class对象表示的类(及其所有超类)或接口(及其所有超类)的所有可访问公共字段
描述:
测试类:
输出:
此方法返回一个Method对象数组,这些对象反映了类或接口的所有可访问的公共方法,以及从此Class对象表示的超类和超级接口继承的方法。
此方法返回一个Constructor对象数组,这些对象反映此Class对象所表示的类的所有公共构造函数
描述:
测试类:
输出:
public java.lang.Boolean(boolean)
public java.lang.Boolean(java.lang.String)
此方法返回一个Field对象,该对象反映此Class对象所表示的类或接口的指定公共成员字段
描述:
此方法返回一个Method对象,该对象反映此Class对象所表示的类或接口的指定公共成员方法
描述:
此方法返回一个Constructor对象,该对象反映此Class对象所表示的类的指定公共构造函数.parameterTypes参数是一个Class对象的数组,用于按声明的顺序标识构造函数的形式参数类型
此方法用于将对象强制转换为此Class对象表示的类或接口。
描述:
语法 :
public T cast(Object obj)
参数 :
obj - the object to be cast
返回 :
the object after casting, or null if obj is null
此方法用于转换此Class对象以表示由指定的类对象表示的类的子类。它始终返回对此类对象的引用