作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 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/
我是一名优秀的程序员,十分优秀!