스칼라에서 enum 타입에 맞는 문자열 값을 찾아 enum을 리턴하는 메소드가 필요하다.

이럴 때는 사용할 만한 메소드로 filter와 find가 적당하다.

filter는 List 배열을 리턴하기에 마땅치 않고 find가 적당한 것 같다.


public enum TestEnum {
A("a"),
B("b");

private String value;

private TestEnum(String value) {
this.value = value;
}

public String getValue() {
return value;
}
}





object Test {

def main(args: Array[String]): Unit = {

val wrongEnumType : String = "xxx"

val wrong = TestEnum.values().find(e => wrongEnumType.equals(e.getValue))

if (wrong.isDefined) {
println(wrong)
} else {
println("wrong enum type")
}

}
}


Posted by 김용환 '김용환'

댓글을 달아 주세요