Enum Generic Abstract Class Constructor

问题描述 投票:0回答:3

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;
    }
}

java generics enums constructor abstract
3个回答
0
投票

如果您具有类型为Class<AbstractIO>的变量,则可以将其设置为的唯一类是AbstractIO.class


0
投票

凯尔伍德,谢谢。对我来说有用。


-1
投票

您可以使用构造函数创建enum,然后接受AbstractIO类的任何扩展类,并创建一个名为getType的方法以返回该类

© www.soinside.com 2019 - 2024. All rights reserved.