三种获取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 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>