Maison  >  Questions et réponses  >  le corps du texte

java8中的lambda定义的函数该如何引用

定义好的函数,不知道该如何使用。

// 不知道怎么引用
BinaryOperator<Long> add = (x, y) -> x + y;
PHP中文网PHP中文网2741 Il y a quelques jours304

répondre à tous(2)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:20:55

    public class Main {
        
        private long t, u;
        
        private Long test(BinaryOperator<Long> b) {
            return b.apply(t, u);
        }
        public static void main(String[] args) {
            
            Main m = new Main();
            m.t = 1; m.u = 2;
            BinaryOperator<Long> b = (x, y) -> x + y;
            System.out.println(m.test(b));
        }
    }

    Il est inutile de le retirer seul. Lambda définit uniquement la méthode de fonctionnement des données, c'est-à-dire qu'il définit une fonction. Spécifiquement où l'utiliser, vous devez définir une méthode avec le paramètre étant une expression lambda (interface fonctionnelle), puis appeler l'opération réelle de lambda (qui fonctionne dans la définition de l'interface) à l'intérieur de la méthode, comme accepter.

    répondre
    0
  • 怪我咯

    怪我咯2017-04-18 09:20:55

    Ce que

    Lambda définit n'est pas une fonction, c'est juste une abréviation d'une classe anonyme, et ce qu'elle génère est un objet. Tout comme dans votre exemple, l'objet BinaryOperator<Long> qu'il génère est alors un objet instance de cette classe. Comment l'utiliser est la même que comment utiliser l'objet.

    répondre
    0
  • Annulerrépondre