Scala enumeration to int

Есть ли способ определить, что данный объект является значением Enumeration?

x.isInstanceOf[Enumeration.$Value], похоже, не работает, и из того, что я понимаю в отношении типов, зависящих от пути, не следует.

Я хотел бы написать функцию, которая задает любое значение Enumeration, возвращает свой id. Альтернативно, неявный, который преобразует Enumeration в Int, также будет большим.

Ответ 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