【问题标题】:Is there any equivalent syntax for C# Type.GetType() in javajava中的C# Type.GetType() 是否有任何等效的语法
【发布时间】:2013-02-18 20:16:36
【问题描述】:

请让我知道 java 中是否有 C# Type.GetType() 的等效语法。

和java中Activator.CreateInstance()的等效语法。

谢谢。

【问题讨论】:

    标签: java


    【解决方案1】:

    Type.GetType() 等效项

    使用Object.getClass()instanceof

    Activator.CreateInstance() 等效

    如果一个类有一个无参数的构造函数,那么从它的包限定类名创建一个对象通常使用Class.forNameClass.newInstance 来完成,如下所示

     Class clazz = Class.forName("test.Demo");
     Demo demo = (Demo) clazz.newInstance();
    

    如果类没有参数的构造函数,你必须使用下面的反射

    Class<?> clazz = Class.forName(className);
    Constructor<?> ctor = clazz.getConstructor(String.class);
    Object object = ctor.newInstance(new Object[] { ctorArgument });
    

    【讨论】:

      【解决方案2】:

      您可能会实现类似使用 Java 反射的功能

      Class c - object.getClass();
      
      object.getClass().getConstructors()[0].newInstance(initargs);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 1970-01-01
        • 2022-06-16
        相关资源
        最近更新 更多