Eclipse报告了MyEnum.java中的“将构造方法'MyEnum(Class <AbstractIO>
)更改为MyEnum(Class <StringIO>
)””的错误。
如何解决同时使用(StringIO和NumberIO)的问题?
AbstractIO.java
public class AbstractIO{}
StringIO.java
public class StringIO extends AbstractIO{}
NumberIO.java
public class NumberIO extends AbstractIO{}
MyEnum.java
public enum MyEnum {
String ( StringIO.class),
Number( NumberIO.class);
private Class<AbstractIO> ioClass;
MyEnum( Class<AbstractIO> clazz) {
this.ioClass = clazz;
}
}
如果您具有类型为Class<AbstractIO>
的变量,则可以将其设置为的唯一类是AbstractIO.class
。
凯尔伍德,谢谢。对我来说有用。
您可以使用构造函数创建enum
,然后接受AbstractIO
类的任何扩展类,并创建一个名为getType的方法以返回该类