java - Question sur le code source de l'interface de fonction de prédicat JDK8 (Prédicat)?
迷茫
迷茫 2017-06-23 09:14:14
0
4
952

Il existe une and() méthode dans l'interface de la fonction, le code source est le suivant

default Predicate<T> and(Predicate<? super T> other) {
    Objects.requireNonNull(other);
    return (t) -> test(t) && other.test(t);                        
}

De plus, test()Le code source est le suivant

boolean test(T t);

La question est de savoir pourquoi &&booleanLes opérations logiques sur les valeurs de type peuvent renvoyer un objet prédicat ? ? ?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(4)
滿天的星座

Je ne sais pas ce qu'est un objet prédicat, mais test(t) && other.test(t) Il s'agit d'une expression booléenne ordinaire, et elle renvoie une valeur booléenne, pas un « objet prédicat ». L'intégralité de l'instruction return est en fait l'abréviation de l'instruction suivante :

return (t) -> {
    return test(t) && other.test(t);
};
给我你的怀抱

Ce qui est retourné ne l'est pas boolean, 而是(t) -> { return true|false; }, 表示返回一个functional interface, 这个functional interface是什么根据上下文确定, 只要是接受参数是1个并且返回值是bool都可以, 在Predicate中就是functional interface自己, 因为方法规定了返回值是Predicate.

某草草

@ Fabricated Faith et @YaTou ont tous deux déclaré que ce qui est renvoyé est un Lambda, qui répond à la définition de Predicate<T>.

Je veux juste dire pourquoi Predicate est traduit par "prédicat". Bien qu'il ait le sens de "prédicat", il est utilisé ici avec son autre sens "assertion, assertion (c'est plus facile à comprendre en utilisant une assertion en langage naturel, mais Les livres techniques de développement sont généralement appelés assertions)", qui sont utilisés pour juger quelque chose et obtenir un résultat vrai ou faux - c'est-à-dire qu'il est jugé vrai ou qu'il est jugé faux

三叔

C'est vrai qu'il n'y a aucun problème avec le code source. Je suis en charge maintenant et je serai (t) -> test(t)当做一个整体了,其实应该 test(t) && other.test(t) un tout Merci @fabricatedbelief et @YaTou pour leurs réponses et le grand rappel de Biancheng

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal