Siguiendo obviamente funciona, pero no me gusta para envolver artículos en Tupla,argumentos de la función de guayaba
ImmutableMap<String, Function<Tuple2<Double>, Double>> op = new //
ImmutableMap.Builder<String, Function<Tuple2<Double>, Double>>()
.put("+", new Function<Tuple2<Double>, Double>() {
@Override public Double apply(Tuple2<Double> data) {
return data.Val_1 + data.Val_2;
}
}).build();
System.out.println(op.get("+").apply(new Tuple2<Double>(3d, 4d)));
Quiero escribir algo como:
ImmutableMap<String, Function<Double[], Double>> op = new //
ImmutableMap.Builder<String, Function<Double[], Double>>()
.put("+", new Function<Double[], Double>() {
@Override
public Double apply(Double... data) {
return data[0] + data[1];
}
}).build();
System.out.println(op.get("+").apply(3d, 4d));
ayuda sería más útil, Ty.
Editar: Problema resuelto, comenzaron a usar:
public interface T2Function<T> {
T apply(T Val_1, T Val_2);
}
Puede hacer esto devolviendo otra 'Función' de su' Function.apply', y luego aplicar eso al segundo argumento. 'Function.apply (a) .apply (b)'. La función "interna" usaría 'a' directamente, y recibiría' b' como parámetro. Esto podría ampliarse para parámetros 'n'. Eso imitaría el tratamiento de Haskell de las funciones, pero no estoy seguro de qué ganarías en Javaland. – jpaugh