newInstance()方法已过时(即:@Deprecated(since = “9“)),快来康康怎办呀?

您所在的位置:网站首页 setlatesteventinfo替代方法 newInstance()方法已过时(即:@Deprecated(since = “9“)),快来康康怎办呀?

newInstance()方法已过时(即:@Deprecated(since = “9“)),快来康康怎办呀?

2023-10-13 00:02| 来源: 网络整理| 查看: 265

newInstance()方法已过时(即:@Deprecated(since = “9”)),快来康康怎办吖?

The call clazz.newInstance() can be replaced by clazz.getDeclaredConstructor().newInstance() == 以上片段为jdk9的官方解释(clazz为Class的一个实例)== 目前大多数企业级开发还在使用jdk8,在jdk8中创建运行时类的对象时,使用的方法大多数都是clazz.newInstance(); ** 但在jdk9中clazz.newInstance()被Deprecated掉了,jdk9推荐使用clazz.getDeclaredConstructor.newInstance().** ** jdk的版本在持续更新,大的方向肯定是向前走,因此笔者建议上述两种方法都掌握。** 两种方法的具体使用场景请看下方代码段:

/* * 如何调用运行时类的构造器: * */ @Test public void testConstructor() throws NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException { Class clazz = Person.class; //1.获取指定的构造器: Constructor con1 = clazz.getDeclaredConstructor(String.class); //2.保证此构造器是可访问的: con1.setAccessible(true); //3.调用此构造器创建运行时类的对象(两种方法): //方法一:jdk8以及8之前 //Person p1= (Person)clazz.newInstance(); //方法二:jdk9以及9之后: Person p2 =(Person)con1.newInstance("Tom"); System.out.println(p2); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3