"toString"을 재정 의하여 어떻게이 스칼라 코드가 다음 Java 코드처럼 동작하도록 할 수 있습니까? 스칼라에서스칼라에서 toString 메서드 재정의 열거
코드
object BIT extends Enumeration {
type BIT = Value
val ZERO, ONE, ANY = Value
override def toString() =
this match {
case ANY => "x "
case ZERO=> "0 "
case ONE => "1 "
}
}
val b = ONE
println(ONE) // returns ONE
구인의 toString 문제는 다음 Java 코드와 같은 출력을 생성한다.
public enum BIT {
ZERO, ONE, ANY;
/** print BIT as 0,1, and X */
public String toString() {
switch (this) {
case ZERO:
return "0 ";
case ONE:
return "1 ";
default://ANY
return "X ";
}
}
}
BIT b = ONE;
System.out.println(b); // returns 1
잘못된 "toString"메서드를 재정의하고 있다고 생각합니다.