LINUX.ORG.RU

История изменений

Исправление LongLiveUbuntu, (текущая версия) :

Такое вообще решают паттерн-матчингом. Смотри как надо:

sealed trait ServiceDuckType
case class Broker(broker: ServiceDuckType) extends ServiceDuckType
case class CustomServiceDTO(dto: ServiceDuckType) extends ServiceDuckType

def inject(param: ServiceDuckType) = param match 
{
  case Broker(broker) => Some(broker)
  case CustomServiceDTO(dto) => Some(dto)
  case _ => None
}

Исходная версия LongLiveUbuntu, :

Такое вообще решают паттерн-матчингом. Смотри как надо:

sealed trait ServiceDuckType
case class Broker(broker: ServiceDuckType) 
case class CustomServiceDTO(dto: ServiceDuckType)

def inject(param: ServiceDuckType) = param match 
{
  case Broker(broker) => Some(broker)
  case CustomServiceDTO(dto) => Some(dto)
  case _ => None
}