Foro de elhacker.net

Programación => Java => Mensaje iniciado por: 4dr14n31t0r en 8 Diciembre 2015, 01:00 am



Título: ¿Como puedo implementar una funcion recursiva en una expresion lambda de Java?
Publicado por: 4dr14n31t0r en 8 Diciembre 2015, 01:00 am
Código
  1. //La interfaz funcional
  2.  
  3. package test;
  4.  
  5. public interface Interface {
  6.  
  7. int factorial(int x);
  8.  
  9. }
Código
  1. //La clase que utiliza la expresion lambda
  2.  
  3. package test;
  4.  
  5. public class Test {
  6.  
  7. public static void main(String... args){
  8. ((Interface) x -> x == 1 ? 1 : x*factorial(x-1)).factorial(7); //No compila (busca la funcion en la clase Test).
  9. ((Interface) x -> x == 1 ? 1 : x*this.factorial(x-1)).factorial(7); //No compila (el puntero this apunta a un objeto de la clase Test).
  10. }
  11.  
  12. }