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

eric.itzhak

我知道我可以做到以下几点:

String className = "A";
Object o= Class.forName(className).newInstance();

但是考虑这种情况(简化):

class Parent { 

   public void action() {...};
}

class A extends Parent {

 @Override
 public void action() {...};

}
class B extends Parent {

 @Override
 public void action() {...};

}
class C extends Parent {

 @Override
 public void action() {...};

}

现在,我想创建一个可以是这三种情况之一的类。如果使用上面的代码并创建一个Object,则将无法调用该action方法。我希望能够创建一个从字符串扩展Parent的对象。

在我的实际情况中,我有多个不同的父母,并且这个班级是从一个班级扩展而来的,该班级是从一个班级和大约4层继承力扩展而来的。会定期进行铸造工作吗?

汤普森

强制转换是可以的,但不是必须的。Class#newInstance()返回type的实例T,该实例是类的泛型类型。这意味着,由于Class.forName("A")返回的实例Class<A>,因此您可以将实例声明为Parent归因于A的继承,就像newInstance()返回类型为object一样A

Parent p = Class.forName("A").newInstance();
p.action();

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建自己的/自定义类对象

创建自定义对象类android

如何 flatMap 自定义创建的类?

如何创建自定义模型类

递归对象数组以创建自定义类对象

Javascript:如何根据对象定义(如类)正确创建新的自定义等距

如何为Web应用程序创建和使用自定义类的变量?

在 Python 中从 YAML 创建自定义类的对象

如何为类对象创建自定义字符串表示形式?

如何创建可用于AngularJS中的方法的自定义对象类

如何使用自定义类对象列表为Firestore创建map <String,Dynamic>?

如何创建自定义相机视图而不是UIImagePickerViewController?

如何运行与终端自定义变量的java类

如何从自定义类的列表中获取对象?

如何初始化自定义类对象的数组?

如何在Swift中创建自定义UITableViewCell类?

如何使用Gremlin在OrientDB中创建自定义类

如何从自定义类Person创建数据集?

如何在Ember中创建自定义错误类?

如何为自定义类创建println / print方法

如何在Java中创建自定义JButton类?

如何在Cloudmine中创建自定义登录类?

如何设置自定义类以编程方式创建UIButton?

如何为自定义光标创建单独的类

如何创建uiimageview的自定义类-Swift

节点JS:如何创建自定义变量?

如何为内联变量模板创建自定义点?

如何使用自定义init创建自定义UINavigationController类?

如何在Kotlin中使用自定义字体创建TextView的自定义类?