gpt4 book ai didi

java - 枚举通用抽象类构造函数

转载 作者:行者123 更新时间:2023-12-01 16:42:50 25 4
gpt4 key购买 nike

Eclipse 在 MyEnum.java 中报告“Change constructor 'MyEnum(Class <AbstractIO> ) to MyEnum(Class <StringIO> )'”错误。

如何修复它以同时使用(StringIO 和 NumberIO)?

抽象IO.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 .

引用扩展 AbstractIO 的类所需的类型是 Class<? extends AbstractIO> .

public enum MyEnum {
String(StringIO.class),
Number(NumberIO.class);

private Class<? extends AbstractIO> ioClass;

MyEnum(Class<? extends AbstractIO> clazz) {
this.ioClass = clazz;
}
}

关于java - 枚举通用抽象类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61829960/

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