附:本博文记录反射基础知识,扩展请参见反射目录下的其余博文。
一.通过一个对象获得完整的包名和类名
方法:class.getClass().getName()。
二.实例化Class类对象
有三种方法:
1.推荐此种方式进行构建类:Class.forName("className");
2.java的任何一个java对象都有getClass方法;
3.每个类都有class属性:className.class。
一、二点详见示例代码:
package temp.reflect; public class Demo { public static void main(String[] args) { GetClassName getName = new GetClassName(); //通过一个对象获得完整的包名和类名Class.getClassName(); getName.getClassName(); //测试反射机制获取类 ConstructClass constructClass = new ConstructClass(); constructClass.constructClass(); } } class GetClassName { public void getClassName(){ Demo demo = new Demo(); System.out.println(demo.getClass().getName()); } } class ConstructClass { @SuppressWarnings("rawtypes") public void constructClass(){ Class demo1 = null; Class demo2 = null; Class demo3 = null; //反射机制来获取类的三种方式: try { //1.推荐此种方式进行构建类:Class.forName("className") demo1 = Class.forName("temp.reflect.Demo"); } catch (ClassNotFoundException e) { e.printStackTrace(); } //2.java的任何一个java对象都有getClass方法 demo2=new Demo().getClass(); //3.每个类都有class属性:className.class demo3=Demo.class; System.out.println("类1名称 "+demo1.getName()); System.out.println("类2名称 "+demo2.getName()); System.out.println("类3名称 "+demo3.getName()); } }