gpt4 book ai didi

java - Java Enums 之间可以共享一些通用的代码吗?

转载 作者:行者123 更新时间:2023-12-01 18:00:30 26 4
gpt4 key购买 nike

我有两个枚举如下

public enum Read {
PRIVATE (1), PUBLIC(2);

private final int value;

Read(int value) {
this.value = value;
}

public int getValue() {
return value;
}
}

还有

public enum Write {
CREATE (1), UPDATE(2);

private final int value;

Write(int value) {
this.value = value;
}

public int getValue() {
return value;
}
}

两个枚举都需要一些值来表示它们。有没有一种方法可以让我们共享代码,其中 ReadWrite 从具有 value 的内容“扩展”,而不是针对每个枚举,我需要有 getValuevalue 等?可能一种方法是创建一个类,但是想一想我们是否可以使 Enum “可扩展”?

最佳答案

不要反抗;拥抱类。

枚举通常代表某种形式的状态;也就是说,每个枚举值都有一个特定的业务关联状态。您必须确定 Read.PRIVATERead.PUBLIC 真正代表什么,但它们仍然是状态。 Write.CREATEWrite.UPDATE 也是如此。

现在真正的问题是,这两个枚举如何相互关联?他们可能不会,因为阅读内容是独立的,并且与写作内容是分开的。

在这种情况下,我可能会在一个类中表示它:

public class Permission {
private Read readState;
private Write writeState;

public void setReadState(Read readState) {
this.readState = readState;
}

public void setWriteState(Write writeState) {
this.writeState = writeState;
}
}

目前还不清楚这些值代表什么,因为枚举保证是唯一的,但可以从中获取您想要的内容。

关于java - Java Enums 之间可以共享一些通用的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41355030/

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