JDK怎么反射实例化对象

本篇内容主要讲解“JDK怎么反射实例化对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JDK怎么反射实例化对象”吧!

创新互联公司基于分布式IDC数据中心构建的平台为众多户提供温江服务器租用 四川大带宽租用 成都机柜租用 成都服务器租用。

反射实例化对象

获取Class对象后最大意义实际上并不是在于只是一个对象的实例化操作形式,更重要的是Class类中提供了一个对象的反射实例化方法(代替了关键字new):

在JDK1.9以前的实例化:

@Deprecated(since="9")public T newInstance() throws InstantiationException, IllegalAccessException

在JDK1.9之后的实例化:

clazz.getDeclaredConstructor().newInstance()

范例:通过newInstance()方法实例化Person类对象

package cn.mldn.vo;public class Person {//任何情况下如果要实例化类对象,一定要调用类中的构造方法public Person(){     //无参构造方法System.out.println("*********** Person类构造方法 ************");
    }
    @Overridepublic String toString() {return "我是一个人,一个脱离了低级趣味的好人!";
    }
}
package cn.mldn.demo;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Class cls=Class.forName("cn.mldn.vo.Person");Object obj= cls.newInstance();  //实例化对象,JDK1.9后被废除了System.out.println(obj);  //输出对象调用toString()方法/**         * *********** Person类构造方法 ************         * 我是一个人,一个脱离了低级趣味的好人!         */}
}

现在通过反射实现的对象实例化处理,依然要调用类中的无参构造方法,其本质等价于“类 对象 = new 类()”,相当于隐含了关键字new,而直接使用字符串进行了替代。

范例:使用getDeclaredConstructor().newInstance()进行对象实例化

package cn.mldn.demo;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        Class cls=Class.forName("cn.mldn.vo.Person");Object obj= cls.getDeclaredConstructor().newInstance();  //实例化对象,JDK1.9废除了System.out.println(obj);/**         * *********** Person类构造方法 ************         * 我是一个人,一个脱离了低级趣味的好人!         */}
}

从JDK1.9后,newInstance()被替代了,因为默认的Class类中的newInstance()方法只能调用无参构造,所以很多开发者会认为其描述的不准确,于是将其变换了形式。

到此,相信大家对“JDK怎么反射实例化对象”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前文章:JDK怎么反射实例化对象
网站URL:http://hbruida.cn/article/pigghe.html