温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JDK怎么反射实例化对象

发布时间:2021-08-26 15:38:37 来源:亿速云 阅读:175 作者:chen 栏目:编程语言

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

反射实例化对象

获取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怎么反射实例化对象”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jdk
AI