Вопрос

У меня есть два объекта, Objecta и ObjectB, как с обновлением метода ().Я хочу написать функцию, которая принимает ODEATA или OBJECTB (но никаких других типов).Концептуально, это то, что я пытаюсь сделать:

def doSomething[T <: ObjectA | T <: ObjectB](obj: T) = {
    obj.update
}
.

Я понимаю, что есть другие способы решения этой проблемы (например, структурное набрав метода обновления (), общий базовый класс и т. Д.) Но мой вопрос в том, что можно сделать так в SCALA, и если так, чтосинтаксис?И что это называется?

Это было полезно?

Решение

в Scala, есть тип либо для неисправности профсоюза. По сути, вы сделаете что-то вроде:

def doSomething(obj: Either[ObjectA, ObjectB]) {
  obj.fold(fa, fb)
}
.

Checkout http://www.scala-lang.org/api/current/scala / deoted.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top