Estoy escribiendo un trait
protegida que debe especificar el método clone
devolver un CloneResult
, así como:Scala: Especificar método público de primer orden método
trait TraitWithClone extends Cloneable {
def clone: CloneResult
}
La intención aquí es para apretar el tipo de retorno de java.lang.Object
' s clone()
a algo útil para esta interfaz. Sin embargo, cuando intento compilar esto, me sale:
error: overriding method clone in trait View2 of type()CloneResult; method clone in class Object of type()java.lang.Object has weaker access privileges; it should be public; (Note that method clone in trait View2 of type()CloneResult is abstract, and is therefore overridden by concrete method clone in class Object of type()java.lang.Object)
¿Cómo puedo exigir que una aplicación sea public
, cuando Scala no tiene la palabra clave? Sé que puedo hacer:
trait TraitWithClone extends Cloneable {
override def clone = cloneImpl
protected def cloneImpl: CloneResult
}
... pero eso parece un truco. ¿Alguna sugerencia?
¿El clon 'def anulación(): CloneResult' trabajar? –
No; eso fue lo primero que intenté. –
con el paréntesis? –