java 枚举通过两个值获取另一个值
时间: 2023-08-13 22:02:24 浏览: 48
可以通过在枚举中定义一个方法来实现通过两个值获取另一个值。具体实现如下:
```java
public enum MyEnum {
VALUE1("value1", 1),
VALUE2("value2", 2),
VALUE3("value3", 3);
private String name;
private int number;
MyEnum(String name, int number) {
this.name = name;
this.number = number;
}
public static MyEnum findByValue(String name, int number) {
for (MyEnum e : MyEnum.values()) {
if (e.name.equals(name) && e.number == number) {
return e;
}
}
return null;
}
// 可根据自己的需求实现其他方法
}
```
在上述代码中,通过`findByValue`方法可以根据`name`和`number`的值来获取对应的枚举项。
相关问题
java 枚举三个参数值通过两个值获取另一个值
假设你有一个枚举类型如下:
```java
public enum MyEnum {
A(1, 2),
B(3, 4),
C(5, 6);
private final int value1;
private final int value2;
MyEnum(int value1, int value2) {
this.value1 = value1;
this.value2 = value2;
}
public int getValue1() {
return value1;
}
public int getValue2() {
return value2;
}
}
```
其中每个枚举常量都有两个值 `value1` 和 `value2`。要通过其中的两个值获取另一个值,可以写一个静态方法,如下所示:
```java
public static int getValue3(int value1, int value2) {
for (MyEnum e : MyEnum.values()) {
if (e.getValue1() == value1 && e.getValue2() == value2) {
// 找到对应的枚举常量,返回其 value3
return e.getValue3();
}
}
// 没有找到对应的枚举常量,返回默认值或抛出异常
return -1;
}
```
这个方法遍历枚举类型中的每个常量,找到与给定的 `value1` 和 `value2` 相等的常量,然后返回其 `value3` 值。如果没有找到对应的常量,可以返回一个默认值或抛出异常。
java根据枚举值获取枚举内容
根据提供的两个引用,可以看出这是在Java中使用枚举类型的两种不同方法来获取枚举内容。下面是两种方法的详细解释和示例代码:
1.使用EnumUtil.getEnumObject()方法获取枚举内容
这种方法需要使用一个名为EnumUtil的工具类,该类提供了一个getEnumObject()方法,该方法接受两个参数:枚举类型和一个Lambda表达式,该表达式用于比较枚举类型中的某个属性是否与提供的值相等。如果找到匹配的枚举,则返回该枚举对象,否则返回null。
```java
Optional m1 = EnumUtil.getEnumObject(PurchaseDemandEnum.class, e -> e.getCode().equals(code));
```
其中,PurchaseDemandEnum是枚举类型的名称,getCode()是枚举类型中的一个方法,用于获取枚举类型中的code属性的值,code是枚举类型中的一个属性,表示枚举类型的值。Lambda表达式e -> e.getCode().equals(code)用于比较枚举类型中的code属性是否与提供的code值相等。
2.使用枚举类型中的方法获取枚举内容
这种方法需要在枚举类型中定义一个方法,该方法接受一个参数,用于比较枚举类型中的某个属性是否与提供的值相等。如果找到匹配的枚举,则返回该枚举对象,否则返回null。
```java
Integer codeByName = PurchaseDemandEnum.getCodeByName(name);
```
其中,PurchaseDemandEnum是枚举类型的名称,getCodeByName()是枚举类型中的一个方法,用于获取枚举类型中的name属性的值,name是枚举类型中的一个属性,表示枚举类型的名称。