Bueno 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>...

Miguel Angel Martheyn Berbesi

Miguel Angel Martheyn Berbesi

Pregunta
studenthace 5 años

Bueno 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); } }```
6 respuestas
para escribir tu comentario
    Javier Antonio

    Javier Antonio

    studenthace 3 años

    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

    Maria Fernanda Palencia

    studenthace 4 años

    wolfgangsantamaria gracias asi solucione el problema

    Carlos Eduardo Repillosa Del Valle

    Carlos Eduardo Repillosa Del Valle

    studenthace 5 años

    Si puedes sube el codigo para poder ayudarte a resolverlo.

    Wolfgang Jose Santamaria Cordoba

    Wolfgang Jose Santamaria Cordoba

    studenthace 5 años

    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

    Guillermo Escalona Olivares

    studenthace 5 años

    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

    Miguel Angel Martheyn Berbesi

    studenthace 5 años

    Creo no me interpreta el TriFunction. Que hago? xD

Curso de Programación Funcional con Java SE

Curso de Programación Funcional con Java SE

Desarrolla aplicaciones funcionales en Java SE, aprendiendo a utilizar lambdas, streams y la clase Optional. Implementa colecciones y API RESTful, mientras construyes una herramienta CLI para buscar empleos en GitHub.

Curso de Programación Funcional con Java SE
Curso de Programación Funcional con Java SE

Curso de Programación Funcional con Java SE

Desarrolla aplicaciones funcionales en Java SE, aprendiendo a utilizar lambdas, streams y la clase Optional. Implementa colecciones y API RESTful, mientras construyes una herramienta CLI para buscar empleos en GitHub.