gpt4 book ai didi

java - 为多个值定义抽象类方法参数 Enum

转载 作者:行者123 更新时间:2023-12-01 15:18:14 29 4
gpt4 key购买 nike

我有一个问题。如何使用不同的对象作为 Enum 为多个静态类定义 Enum 类型?

示例:

public abstract class AbstractClass
{
public Enum<?> AbstractMethod();
}

public class StaticClass extends AbstractClass
{
public enum en
{
FOO3,
FOO4
}

@Override
public Enum<en>[] AbstractMethod()
{
return en.values();
}
}

public class StaticClass2 extends AbstractClass
{

public enum en
{
FOO1,
FOO2
}

@Override
public Enum<en>[] AbstractMethod()
{
return en.values();
}
}

但是该代码会引发错误:方法public boolean AbstractMethod(Enum<ObjectX> en1) AbstractClass 中不存在(X 是对象的编号)

这样做可以工作,但会抛出 RawTypes 警告:

public abstract class AbstractClass
{
public Enum[] AbstractMethod();
}

public class StaticClass extends AbstractClass
{
public enum en
{
FOO3,
FOO4
}

@Override
public Enum[] AbstractMethod()
{
return en.values();
}
}

public class StaticClass2 extends AbstractClass
{

public enum en
{
FOO1,
FOO2
}

@Override
public Enum[] AbstractMethod()
{
return en.values();
}
}

最佳答案

你是这个意思吗?

枚举:

public enum Fruits {
APPLE, ORANGE;
}

类(class):

public static abstract class Parent {

public abstract <E extends Enum<?>> void printEnum(final E e);

}

public static class Child extends Parent {

@Override
public <E extends Enum<?>> void printEnum(final E e) {
System.out.println(e.name());
}

}

用法:

new Child().printEnum(Fruits.ORANGE); // Prints ORANGE

关于java - 为多个值定义抽象类方法参数 Enum<E>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11336572/

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