【发布时间】:2020-12-30 13:18:17
【问题描述】:
请提出建议。假设我有两个枚举,如下所示。如果枚举值与我的字符串匹配,我正在执行任务。
public enum Action {
DO("DO"),
REDO("REDO"),
ROLLBACK("DONT");
private String value;
private Action(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
}
public enum Days {
WEEK("WORK"),
LEAVE("DONT WORK");
private String value;
private Days(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
}
我希望下面的工作对这两种情况都是通用的:
//any String
String sp ="do";
Arrays.stream(Action.values()).forEach(e ->{
if(e.getValue().equalsIgnoreCase(sp)){
//System.out.println(sp); Some work to do here
}
} );
【问题讨论】:
-
你能解释一下你所说的“通用”是什么意思吗?您想如何调用泛型方法?
-
@Sweeper 例如:我想检查枚举值是否与我的字符串匹配我想返回或打印枚举的名称/值或至少返回 true,因为我不想写相同的每个枚举的代码行。如果我错了,请更正/建议我(Java 新手)有什么方法可以像我们为对象一样编写方法:
public static <T> void myFunc(T myObject){ // do something return; } -
@alwaysabeginner 那么,您希望 T 是 Action 还是 Days?
-
要在两种类型中通用,第一个先决条件是确保它们来自相同的层次结构!
-
@CommanderTvis 可以是任何其他以类似方式实现的枚举。谢谢
标签: java generics java-8 enums