JAVA中newinstance方法显示已过时,那么有啥方法作为替代呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中newinstance方法显示已过时,那么有啥方法作为替代呢?相关的知识,希望对你有一定的参考价值。

参考技术A clazz.getDeclaredConstructor().newInstance() 参考技术B 创建对象请用new,或者集成了spring的话交给容器去创建

JAVA9之后废弃newInstance()方法

JAVA9之后废弃newInstance()方法

根据JAVA11的API 我们可以看见反射中的newInstance()方法不推荐使用了,用

clazz.getDeclaredConstructor().newInstance()

代替

例如

package reflect;
 
import java.lang.reflect.InvocationTargetException;
 
/**
 * 获取class对象的几种方法
 * 对象.get.class
 * 类 class
 * Class.forName(全限定类名)
 *
 */
public class Demo 
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException 
        String string="abc";
        Class<?> class1=string.getClass();
        class1=String.class;
        try 
            class1=Class.forName("java.lang.String");
         catch (ClassNotFoundException e) 
            // TODO Auto-generated catch block
            e.printStackTrace();
        
        System.out.println((String)class1.getDeclaredConstructor().newInstance());
    
 

以上是关于JAVA中newinstance方法显示已过时,那么有啥方法作为替代呢?的主要内容,如果未能解决你的问题,请参考以下文章

IE错误“Java(TM) 已被阻止,因为它已过时并且需要更新。”的解决方法

JAVA9之后废弃newInstance()方法

过时的PreferenceActivity导致Fragment显示问题

java newinstance

使用IDEA运行项目时提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除

Java中有些方法的函数名会出现划线,这划线代表着啥意思吗?