java - JDK8 述語関数インターフェース (Predicate) のソースコードに関する質問ですか?
迷茫
迷茫 2017-06-23 09:14:14
0
4
982

関数インターフェースには and() メソッドがあり、ソースコードは次のとおりです

リーリー

また、test()ソースコードは以下の通りです

リーリー

問題は、なぜ &&boolean 型の値の間の論理演算が述語オブジェクトを返すことができるのかということです。 ? ?

迷茫
迷茫

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

全員に返信(4)
滿天的星座

述語オブジェクトが何なのかは分かりませんが、test(t) && other.test(t) これは普通のブール式であり、「述語オブジェクト」ではなくブール値を返します。 return ステートメント全体は、実際には次のステートメントの省略形です:

リーリー
いいねを押す +0
给我你的怀抱

返されるものはboolean, 而是(t) -> { return true|false; }, 表示返回一个functional interface, 这个functional interface是什么根据上下文确定, 只要是接受参数是1个并且返回值是bool都可以, 在Predicate中就是functional interface自己, 因为方法规定了返回值是Predicateではありません。

いいねを押す +0
某草草

@ Fabricated Faith と @YaTou はどちらも、返されるのは Predicate<T> の定義を満たす Lambda であると述べています。

Predicate が「述語」と訳される理由を言いたいのですが、Predicate には「述語」という意味がありますが、ここでは「主張、主張」という別の意味で使われています(自然言語ではアサーションを使った方がわかりやすいですが)。開発技術書などでは一般に「アサーション」と呼ばれていますが、これは何かを判断して真偽の結果、つまり真と判断されるか偽と判断されるかを知るために使われます

いいねを押す +0
三叔

ソースコードに問題がないのは事実です。私が今責任を持っていますので、(t) -> test(t)当做一个整体了,其实应该 test(t) && other.test(t)回答とBianchengの重要な思い出をありがとう

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート