三种获取Class的对象的方法
获取Class的对象有很多方式,下面将以String类为例。
1.反射。用到了Class类中的静态方法forName(String className).传入的字符串参数是类的全路径名。因为可以传入字符串,所以这种方法也可以用到配置文件中,使其修改路径更加方便。
@SuppressWarnings("rawtypes")
Class cls = Class.forName("java.lang.String");
System.out.println(cls);
2.通过类的实例对象调用getClass()方法,这个方法是继承Object类得来的。
String str = "csdn";
Class cls2 = str.getClass();
System.out.println(cls2);
3.根据类名直接获取对应的Class的对象 : 类名.class
Class cls1 = String.class;
System.out.println(cls1);
如果返回的Class对象不是泛型的话,编译器会出现警告,只需要添加 @SuppressWarnings("rawtypes")。就不会警告了。
以上三种输出的实例都是一致的,
public class ClassTest {
public static void main(String[]args) throws Exception {
@SuppressWarnings("rawtypes")
Class cls = Class.forName("java.lang.String");
System.out.println(cls);
@SuppressWarnings("rawtypes")
Class cls1 = String.class;
System.out.println(cls1);
String str = "csdn";
@SuppressWarnings("rawtypes")
Class cls2 = str.getClass();
System.out.println(cls2);
System.out.println(cls==cls1);
System.out.println(cls==cls2);
System.out.println(cls2==cls1);
}
}
运行结果:
版权声明:本文为wasane原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。