Я написал класс, реализующий шаблон структуры :
class MyCommand[-T, +R](val name: String, val execute: T => R)
подготовил две команды и сохранил их в MutableList:
val commands = new mutable.MutableList[MyCommand[Nothing, Any]]
commands += new MyCommand[String, String]("lower", s => s.toLowerCase())
commands += new MyCommand[Date, Long]("time", d => d.getTime)
Затем у меня есть два данных, которые нужно выполнить:
val data = Array("StRiNG", new Date())
Проблема для меня в том, что я не знаю, как определить, какая дата применима к команде:
data.foreach {
d => commands.foreach {
c =>
// println(c.execute(d)) if d is applicable to c.execute().
}
}
то, что я пробовал, это соответствие шаблона с спецификацией типа, но оно дает синтаксическую ошибку:
c.execute match {
case m: (d.getClass => Any) => println(c.execute(d))
}
Помогите мне: (