Clase Scala para implementar dos interfaces Java, ¿cómo?
(1)
La segunda interfaz se puede implementar con la palabra clave with
class ImplementingClass extends EventRecorder with TransactionCapable {
def record(event: Event) {}
def commit() {}
}
Más adelante en cada interfaz posterior se separa con la palabra clave with
.
class Clazz extends InterfaceA
with InterfaceB
with InterfaceC {
//...
}
Acabo de empezar a aprender Scala y ahora me pregunto cómo podría implementar dos interfaces Java diferentes con una clase de Scala. Digamos que tengo las siguientes interfaces escritas en Java
public interface EventRecorder {
public void abstract record(Event event);
}
public interface TransactionCapable {
public void abstract commit();
}
Pero una clase Scala puede extender solo una clase a la vez. ¿Cómo puedo tener una clase Scala que pueda cumplir ambos contratos? ¿Tengo que mapear esas interfaces en rasgos?
Tenga en cuenta que mis clases de Scala se usarían de Java cuando estoy tratando de inyectar una nueva funcionalidad escrita en Scala en una aplicación Java existente. Y el marco existente espera que ambos contratos de interfaz se cumplan.