/**
* @创建者 yindj
* @创建时间 2018/4/21 22:38
* @技术交流 (QQ:429310921)
* @部门 天元陆兵研发部
* @描述 获取类对象的三种常见方法
*/
public class ReflectDemo {
public static void main(String[] args)throws Exception{
String str = "abc";
/**1.类名.class方法*/
Class c1 = String.class;
/**2.对象.getClass()方法*/
Class c2 = str.getClass();
/**3.Class.forName("packge.class")*/
Class c3 = Class.forName("java.lang.String");
System.out.println(c1 == c2);
System.out.println(c1 == c3);
System.out.println(c1);
System.out.println(c1.getPackage());
}
}
/**打印结果如下*/
true
true
class java.lang.String
package java.lang, Java Platform API Specification, version 1.8
注意:在运行期间,一个类,只有一个Class对象产生。
三种方式常用第三种,第一种需要导入类的包,依赖太强,不导包就抛编译错误。第二种对象都有了还要反射干什么。一般采用第三种,传入一个字符串或者写在配置文件中。