Pregunta

Tengo dos objetos, objetos y objetos, ambos con una actualización del método ().Quiero escribir una función que acepte Ojecta u ObjectB (pero no hay otros tipos).Conceptualmente, esto es lo que estoy tratando de hacer:

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

Me doy cuenta de que hay otras formas de resolver este problema (por ejemplo, la escritura estructural del método de actualización (), la clase base común, etc.), pero mi pregunta es posible hacerlo de esta manera en Scala y, si es así, ¿qué es?la sintaxis?¿Y qué se llama esto?

¿Fue útil?

Solución

En Scala, está el tipo para hacer un sindicato de disjoint. Básicamente, harás algo así como:

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

Realizar pedido http://www.scala-lang.org/api/current/scala/e.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top