Если у меня есть ситуация с классом дела, подобная этой:
case class ColorId(id: Int)
С объектом-компаньоном, который выглядит следующим образом:
/**
* Contains all possible colors that can be applied.
*/
object ColorId {
val RED = ColorId(1)
val GREEN = ColorId(2)
val BLUE = ColorId(3)
val WHITE = ColorId(4)
val BLACK = ColorId(5)
val UNKNOWN = ColorId(6)
}
val blue = ColorId.BLUE
assert(blue.getNameString == "BLUE")
Конечно, есть способ использовать отражение, чтобы получить утверждение быть правдой. Как должна выглядеть реализация метода getNameString
объекта ColorId
?
РЕДАКТИРОВАТЬ: Нет необходимости указывать метод c. Например, допустимо что-то вроде blue.getClass.getXXX.getName
.
РЕДАКТИРОВАТЬ # 2: Удаление этой сопоставимой части.