Aquí en el trabajo la mayoría de la gente usa Java, mientras estoy trabajando con Scala. Hemos decidido reunir algunas clases comunes en una biblioteca que se escribirá en Java. Ahora quiero añadir un poco de programación pseudo-funcional a la biblioteca, echar un vistazo a los siguientes:manera suave de utilizar la función <A, R> interfaz java de scala?
java:
public interface Func<A, R> {
public R f(a A);
}
public AClass {
public <R> ArrayList<R> myMethod(
Func<String, R> func
) {
// ...
}
}
uso en Java:
AClass ac = new AClass();
ArrayList<String> al = ac.myMethod(
new Func<String, String> (
public String f(String s) {
return s + "!";
}
})
Lo anterior no es exactamente salir (más como desalentador en realidad, desde una perspectiva scala). ¿Hay alguna manera de convocar un poco de magia Scala para ser capaz de hacer algo como lo siguiente en Scala:
var ac = new ACLass
var al = ac.myMethod(str => str + "!") // alternative 1
al = ac.myMethod { case: str:String => str + "!" } // alternative 2
ensucié alrededor con implícitos por un tiempo pero no podía hacer las cosas lo solucionaron = P.
¿Ha intentado crear un adaptador en Scala que tome una lambda y la convierta en una clase interna anónima para que la biblioteca la consuma? No estoy seguro de si logrará que esto funcione con los genéricos en tiempo de compilación ... – Bringer128
Lo hice, pero no lo hice funcionar =) – fickludd