2011-07-06 9 views
10

Supongamos que tengo una aplicación Java inteface¿Cómo implementar la interfaz Java anónimamente en scala?

public interface Bar { 

    public void baz(String st) 
    public void jaz() 
} 

Quiero aplicar encima de la interfaz de forma anónima en Scala dentro de un cuerpo de la función como:

def foo() = { 
val bar : Bar = new Bar() { 
// how to do that ? 


} 

} 

Respuesta

8

Si tuviera que hacerlo, escribirlo como:

val bar = new Bar { 
    def baz(st: String): Unit = { 
    // method impl 
    } 

    def jaz(): Unit = { 
    // method impl 
    } 
} 

Aunque mi preferencia es evitar tanto los métodos de efecto secundario como posible, no juegan muy bien con la programación funcional

6
val bar = new Bar { 
    def baz(st: String) { 
    // method impl 
    } 

    def jaz() { 
    // method impl 
    } 
} 
Cuestiones relacionadas