gpt4 book ai didi

java - 在 python 中使用枚举创建子类的新实例

转载 作者:行者123 更新时间:2023-12-02 11:45:02 24 4
gpt4 key购买 nike

我有以下 Java 代码,其中枚举数据类型用于创建基类的实例,如下所示:主要抽象类:

public abstract class Element{
static enum elements{
quad8{Element create(){return new ElementQuad2D();}};
abstract Element create();
}
public static Element newElement (String name){
el=elements.valueOf(name);
return el.create();
}
public Element (String name, int nind, int nstress){
this.name = name;
/*Do Something Else*/
}
}

子类:

class ElementQuad2D extends Element{
public ElementQuad2D(){
super("quad8",8,4);
}
}

如何创建如上所述的枚举类型,以便我可以根据 PYTHON 中的“quad8”等元素名称创建不同子类的实例?

最佳答案

这可以通过从字符串到类的字典轻松实现。子类的使用在这里不起作用:

class Element: pass

class ElementQuad2D(Element): pass

mapping = {'quad8': ElementQuad2D}
obj = mapping['quad8']()
print(obj)
# <__main__.ElementQuad2D object at 0x01D70BD0>

关于java - 在 python 中使用枚举创建子类的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48278260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com