ホームページ  >  に質問  >  本文

java - JDK8 述語関数インターフェース (Predicate) のソースコードに関する質問ですか?

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

リーリー

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

リーリー

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

迷茫迷茫2674日前928

全員に返信(4)返信します

  • 滿天的星座

    滿天的星座2017-06-23 09:16:14

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

    リーリー

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-23 09:16:14

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

    返事
    0
  • 某草草

    某草草2017-06-23 09:16:14

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

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

    返事
    0
  • 三叔

    三叔2017-06-23 09:16:14

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

    返事
    0
  • キャンセル返事