gpt4 book ai didi

java - Java中如何将枚举拆分为多个类别

转载 作者:行者123 更新时间:2023-12-01 16:47:22 26 4
gpt4 key购买 nike

我做出决定时有不同的理由。我基本上有3个类别,Approved Group , Suppressed GroupRejection Group 。我的Rejection Group被分成两部分 - BlockAction 。对此进行建模的最佳方法是什么?

我将在类中存储决策的类型。

public class A{
//some Members
DecisionGroup decision
}

我将获得 List<ClassA>并且需要将其分成 4 个列表,每个列表对应不同的类型。我正在考虑使用枚举,但我不确定如何将拒绝组一分为二。

最佳答案

enum Category {
Approved, Suppressed, Rejected;

enum Group {
ApprovedGroup(Category.Approved),
SuppressedGroup(Category.Suppressed),
BlockRejectedGroup(Category.Rejected),
ActionRejectedGroup(Category.Rejected);

Group( Category category ){...}

Category getCategory(){...}
}

枚举可以具有属性,因此您可以定义 4 个组,并将“主要”类别作为定义列表的参数。

或者您甚至可以使列表本身成为枚举组的属性。

或者,编写一个枚举类别,其中包含确定定义列表的组的方法。

enum Category {
Approved {
@Override
public Group select(A a) {
return Group.ApprovedGroup;
}
},
Suppressed {
@Override
public Group select(A a) {
return Group.SuppressedGroup;
}
},
Rejected {
@Override
public Group select(A a) {
...
return Group.BlockRejectedGroup;
...
return Group.ActionRejectedGroup;
}
};

public abstract Group select(A a);
}

关于java - Java中如何将枚举拆分为多个类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47787733/

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