Java反射生成Class的3种方式以及反射创建对象的2种方式

想要了解反射生成class和创建java对象,首先我们要了解什么是反射?

一、什么是反射?

Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。

二、反射生成Class的三种方式

1.第一种方式(利用getClass()方法)

 

2.第二种方式(直接对象的.class)

 

3.第三种方式(Class.forName())

 

 

注意:此种方法通过对象的全路径来获取Class的,当对象不存在时,会出现ClassNotFoundException异常。详细的可以看下Class.forName()的底层代码。

 

三、反射生成java对象的两种方式

1.第一种方式newInstance();

 

调用public无参构造器 ,若是没有,则会报异常

Object o = clazz.newInstance(); 

没有无参构造函数异常:

 

私有的构造函数异常:

 

 

 

 

2.第二种方式:

有带参数的构造函数的类,先获取到其构造对象,再通过该构造方法类获取实例:

/ /获取构造函数类的对象

Constroctor constroctor = User.class.getConstructor(String.class); 

// 使用构造器对象的newInstance方法初始化对象

Object obj = constroctor.newInstance("name"); 

 

 

 

 

 

 

 

posted @ 2019-11-05 10:37  放肆D青春  阅读(5689)  评论(0编辑  收藏  举报