gpt4 book ai didi

java - 在 Java 中实现类似枚举类型的简洁方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:17:21 25 4
gpt4 key购买 nike

我有多个枚举类型,一个典型的实现如下。

public enum SomeType {
TYPE_A("aaa"),
TYPE_B("bbb"),

private final String type;

private SomeType(String type) { this.type = type; }

public boolean equals(String otherType) {
return (otherType == null) ? false : type.equals(otherType.toUpperCase());
}
}

除了特定的枚举类型之外,这些枚举的构造函数和方法(即 equals 等)都是相同的。我不能创建一个 super “类”并从中扩展。是否有一个干净的解决方案,以便我只需要这些方法的 1 个副本并使所有枚举类型都继承它们?谢谢。

最佳答案

像任何其他类一样,允许枚举类型实现接口(interface)。 Java SE 中的一个例子是 StandardCopyOptionLinkOption , 它们都实现了 CopyOption .

虽然 CopyOption 没有任何方法,但如果您愿意,您当然可以在这样的继承接口(interface)中定义方法。

public interface TypedValue {
String getType();

default boolean equals(String otherType) {
return otherType != null && getType().equals(otherType.toUpperCase());
}
}

public enum SomeType
implements TypedValue {
TYPE_A("aaa"),
TYPE_B("bbb");

private final String type;

private SomeType(String type) { this.type = type; }

@Override
public String getType() {
return type;
}
}

关于java - 在 Java 中实现类似枚举类型的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33399691/

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