
Miguel Angel Martheyn Berbesi
PreguntaBueno la verdad entendi todo, pero el codigo no me funciona y no se porqué. Tengo el codigo igual pero no me lee <day, month, year>. Pareciera no interpretara la TriFunction, pues la Function funciona de maravilla. Este es mi codigo:
import java.time.LocalDate; import java.time.Period; import java.util.function.Function; public class AgeUtils { public static void main(String[] args) { // Si los meses es menor que 10, se le añade un cero, ejemplo: abril-> 04 Function<Integer, String> addCeros = x->x<10? "0"+x:String.valueOf(x); TriFunction<Integer, Integer,Integer, LocalDate> parseDate = (day, month, year) -> LocalDate.parse(year +"-"+ addCeros.apply(month) +"-"+ addCeros.apply(day)); TriFunction<Integer,Integer,Integer,Integer> calculateAge = (day, month, year) -> Period.between( parseDate.apply(day, month, year), LocalDate.now() ).getYears(); System.out.println(calculateAge.apply(10,10,1992)); } @FunctionalInterface interface TriFunction<T, U, V, R> { R apply(T, U, V); } }```

Javier Antonio
este es tu error @FunctionalInterface interface TriFunction<T, U, V, R> { R apply(T, U, V); } deberia ser asi : @FunctionalInterface interface TriFunction<T, U, V, R>{ R apply(T t,U u, V v);

Maria Fernanda Palencia
wolfgangsantamaria gracias asi solucione el problema

Carlos Eduardo Repillosa Del Valle
Si puedes sube el codigo para poder ayudarte a resolverlo.

Wolfgang Jose Santamaria Cordoba
Hola amigo, me sucedia lo mismo que tu y analizando la función LocalDate.parse debes convertir de igual manera el year a string ya que esta función solo pasea string. Con eso la solucione.
Te copio muestra del código espero te sirva:
TriFunction<Integer, Integer, Integer, LocalDate> parseDate = (day, month, year) -> LocalDate.parse(String.valueOf(year) + "-" + addCeros.apply(month) + "-" + addCeros.apply(day));

Guillermo Escalona Olivares
Posiblemente tengas un error en tu codigo ...
`public class AgeUtils { public static void main(String[] args) { Function<Integer,String> addCeros= x->x<10?"0"+x:String.valueOf(x); TreeFunction<Integer,Integer,Integer, LocalDate> parseDate = (day,month,year)->LocalDate.parse(year+"-" +addCeros.apply(month)+"-" +addCeros.apply(day) );
TreeFunction <Integer,Integer,Integer,Integer> calculateAge = (day,month,year)-> Period.between( parseDate.apply(day,month,year),LocalDate.now()).getYears(); System.out.println(calculateAge.apply(10,10,1992)); } @FunctionalInterface interface TreeFunction<T,U,V,R>{ R apply(T t,U u,V v); }
}`

Miguel Angel Martheyn Berbesi
Creo no me interpreta el TriFunction. Que hago? xD