java如何用反射获取类实例
想了解更多Java相关,百度搜索圈T社区,免费视频教程。纯干货
public class Demo {private String key1 = "1";private String key2 = "2";public String getKey1() {return key1;}public void setKey1(String key1) {this.key1 = key1;}public String getKey2() {return key2;}public void setKey2(String key2) {this.key2 = key2;}public static void main(String[] args) throws Exception {//参数 “Demo” 是类的全名,如果在包结构下,要有完整包路径 比如: com.test.DemoClass<?> clazz = Class.forName("Demo");//“Demo”类必须有默认构造方法,否则会抛出异常Demo demo = (Demo) clazz.newInstance();System.out.println(demo.getKey1());System.out.println(demo.getKey2());}}
调用运行时类本身的.class属性
Class clazz=Person.class;
//创建class对应的运行时类Person对象
System.out.println(clazz);
Class clazz1=String.class;
System.out.println(clazz1);
运行时类的对象获取
Person p=new Person();
Class clazz2=p.getClass();
System.out.println(clazz2);
通过Class的静态方法获取
String className="test.Person";
Class clazz3=Class.forName(className);
System.out.println(clazz3);
通过类的加载器
ClassLoader classLoader=this.getClass().getClassLoader();
Class clazz4=classLoader.loadClass(className);
System.out.println(clazz4);
java反射与依赖注入的关系
事实上Spring的依赖注入就是采用反射机制的。反射是指程序可以访问、检测和修改它本身状态或行为的一种能力。对于Java来说,就是在运行状态中,查询这个类、对象的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法、修改它的属性。而所谓的依赖注入就是指在运行时(不是编译时)改变对象的属性或者调用对象的构造方法。

