Ответ 1
x.isInstanceOf[Enumeration#Value]
работает для меня. Из спецификации раздел 3.2.2 "Тип проекции" .
Есть ли способ определить, что данный объект является значением Enumeration?
x.isInstanceOf[Enumeration.$Value]
, похоже, не работает, и из того, что я понимаю в отношении типов, зависящих от пути, не следует.
Я хотел бы написать функцию, которая задает любое значение Enumeration, возвращает свой id. Альтернативно, неявный, который преобразует Enumeration в Int, также будет большим.
x.isInstanceOf[Enumeration#Value]
работает для меня. Из спецификации раздел 3.2.2 "Тип проекции" .
Класс scala.Enumeration.Value имеет поле пользователя 'id', которое является внутренним целым значением. Если не указано конкретно, оно начинается с 0.
scala> object Weekday extends Enumeration {
| val Mon, Tue, Wedn, Thur, Fri, Sat, Sun = Value
| }
defined module Weekday
scala> Weekday.Mon.id
res5: Int = 0