修复EnumUtil空指针问题

This commit is contained in:
Looly
2024-05-10 11:28:43 +08:00
parent 988b8a465a
commit aca181b229
2 changed files with 161 additions and 37 deletions

View File

@@ -0,0 +1,88 @@
package org.dromara.hutool.core.util;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class IssueI9NSZ4Test {
@Test
public void getByTest() {
// AnimalKindInZoo所有枚举结果的getMappedValue结果值中都无AnimalKind.DOG返回null
final AnimalKindInZoo by = EnumUtil.getBy(AnimalKindInZoo::getMappedValue, AnimalKind.DOG);
Assertions.assertNull(by);
}
@Test
public void getByTest2() {
final AnimalKindInZoo by = EnumUtil.getBy(AnimalKindInZoo::getMappedValue, AnimalKind.BIRD);
Assertions.assertEquals(AnimalKindInZoo.BIRD, by);
}
/**
* 动物类型
*/
@Getter
@ToString
@AllArgsConstructor
public enum AnimalKind {
/**
* 猫
*/
CAT("cat", ""),
/**
* 狗
*/
DOG("dog", ""),
/**
* 鸟
*/
BIRD("bird", "");
/**
* 键
*/
private final String key;
/**
* 值
*/
private final String value;
}
/**
* 动物园里的动物类型
*/
@Getter
@ToString
@AllArgsConstructor
public enum AnimalKindInZoo {
/**
* 猫
*/
CAT("cat", "", AnimalKind.CAT),
/**
* 蛇
*/
SNAKE("snake", "", null),
/**
* 鸟
*/
BIRD("bird", "", AnimalKind.BIRD);
/**
* 键
*/
private final String key;
/**
* 值
*/
private final String value;
/**
* 映射值
*/
private final AnimalKind mappedValue;
}
}