Мне было интересно, существует ли способ узнать, является ли объект экземпляром класса case. Я пытался найти структурный тип соответствия unapply
, я замечаю, что они наследуют Product
. Моя реальная необходимость для функции, которая будет идти что-то вроде:Зная, является ли объект Scala экземпляром класса Case
def withCaseClass[T <: /* matcher for case class */](obj:T) ...
Мой основной интерес, чтобы убедиться, классы только случай может быть передан этой функции.
, который пытается передать ему нестандартные классы? террористы? –
Я хотел ограничить во время компиляции, что в этот метод передается только объект, который имеет, чем может быть использован в коммутаторе. – Thomas
Как вы хотите использовать их в сопоставлении с шаблонами (у Scala нет конструкции коммутатора, хотя переключатель можно выразить с помощью сопоставления с образцом - сопоставление шаблонов более общее)? –