我想实现一个方法来决定从什么 java 枚举中获取特定值。例如:
public enum Credentials1 {
USERNAME("user"),
PASSWORD("pass");
}
public enum Credentials2 {
USERNAME("user"),
PASSWORD("pass");
}
然后,在另一个类中,我想要一个通用方法来根据另一个参数来决定我应该使用什么枚举来获得正确的用户。像这样的东西:
public String decide(here I should pass something?) {
switch (myParam) {
case "1":
return Credentials1.USERNAME;
case "2":
return Credentials2.USERNAME;
}
return "";
}
这可以实现吗,因为我没有成功?并认为除了 USERNAME
和 PASSWORD
之外,这些枚举中还有很多常量。
最佳答案
使用以下方法创建接口(interface)Credentials
:
public interace Credentials {
public String value();
}
使这些 enum
实现一个具有返回值的通用方法的接口(interface)。下面是 Credentials1
。 Credentials2
类比实现。
public enum Credentials1 implements Credentials {
USERNAME("user"),
PASSWORD("pass");
private String value;
Credentials1(String value) {
this.value= value;
}
@Override
public String value() {
return this.str;
}
}
在这里你传递了正确的enum
用于进一步的处理:
public String decide(Credentials credentials) {
return credentials.value();
}
示例用法是:
String string = this.decide(Credentials1.USERNAME);
关于java - 2 个相似的 java 枚举和一个方法决定应该从哪个枚举中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52383408/