创建类变量的对象

萨耶夫

我有一个Class对象clazz我要使该类型的对象成为类。

IE Class clazz = MTable.getClass(tableName);

变量clazz可以是类型的MOrder.classMInventory.classMSalary.class现在,我要MOrder为实例创建对象如果没有比较clazzMOrder.class,我怎么可以创建对象MOrderJava是否提供任何此类机制?

更新:

我尝试了这个:

Class<? extends DocAction> clazz = (Class<? extends DocAction>) MTable.getClass(re.tableName);
        DocAction instance = null;
        try {
                instance = clazz.newInstance();
        } catch (InstantiationException e1) {
            e1.printStackTrace();
        } catch (IllegalAccessException e1) {
            e1.printStackTrace();
        }

但是抛出一个异常:

java.lang.InstantiationException:org.compiere.model.MOrder

他们是
Object object = clazz.newInstance();

会根据的值创建实例clazz

如果要将对象存储在MOrder变量中,则必须首先检查其类型:

MOrder order = null;
if (object instanceof MOrder) {
    order = (MOrder) order;
}

正如您所说的那样,您无法避免对该类型的测试,因为它clazz可能包含不同的Class实例。

如果所有类都实现DocAction接口,则可以执行以下操作:

Class<? extends DocAction> clazz = ...
DocAction instance = clazz.newInstace();

这至少可以为您提供接口类型的参考。如果要将实例存储在更特定的变量中,则仍然需要检查特定的类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从存储在变量中的类创建对象

来自分类Dev

从对象列表创建类变量列表

来自分类Dev

如何计算使用静态类变量创建的对象数?

来自分类Dev

如何从类内的变量值创建对象

来自分类Dev

在构造函数中为创建的每个对象更改类变量

来自分类Dev

如何从变量创建自定义类?(不是对象)

来自分类Dev

类变量还是对象?

来自分类Dev

类内部的变量创建

来自分类Dev

访问类并创建对象

来自分类Dev

计算创建的类对象

来自分类Dev

在类中创建对象

来自分类Dev

SupportMapFragment类的创建对象

来自分类Dev

创建类对象列表

来自分类Dev

创建动态类对象

来自分类Dev

从复杂的JSON对象创建C#类,其中动态变量为类名

来自分类Dev

创建类型为<派生类>的变量以将<基类>对象存储在C#中

来自分类Dev

创建对象类型的变量

来自分类Dev

动态创建对象的变量

来自分类Dev

面向对象-类变量

来自分类Dev

从对象变量获取类名

来自分类Dev

哪种机制可以使外部变量在类之外创建的对象中即时访问

来自分类Dev

C#如何使用存储在构造函数变量中的类名创建新对象?

来自分类Dev

如何在Java的单独类中创建两个对象引用变量

来自分类Dev

创建新的子类对象时,在父类中定义的麻烦设置变量

来自分类Dev

使用变量创建和对象,然后将其传递给其他类

来自分类Dev

创建一个 PHP 对象,其中类名是一个变量

来自分类Dev

python,如何分配已在字符串变量中使用名称创建的类的对象

来自分类Dev

你如何创建一个使用另一个类的变量的java对象?

来自分类Dev

从变量创建和使用类