簡體   English   中英

Java謂詞與嵌套對象的鏈接

[英]Java predicate chaining with nested object

private static final Predicate<Parent> HAS_SON = parent -> IS_CHILD(parent.getChild);
private static final Predicate<Child> IS_CHILD = Objects::nonNull;
private static final Predicate<Parent> IS_PARENT = Objects::nonNull;
private static final Predicate<Parent> IS_FATHER = IS_PARENT.and(HAS_SON);

我試圖一連串地鏈接謂詞,那是我要使用子對象的謂詞之一。

這是我試圖使事情更容易理解的一種假設情況。

  1. 將會呼叫is_father( parent
  2. is_father將檢查parent是否為null
  3. and()has_son
  4. has_son將調用is_child(parent.getChild())
  5. is_child將檢查child是否為null

HAS_SON有問題,我知道語法不正確,可能是nesting(parent.child)可能不允許。 可以請一個人確認嗎? 現在我正在使用的解決方法是

private static final Predicate<Parent> HAS_SON = parent -> parent.getChild() != null;

不要忘記,通過使用FunctionalInterfacetest方法可以觸發Predicate 以下將工作

private static final Predicate<Child> IS_CHILD = Objects::nonNull;
private static final Predicate<Parent> HAS_SON = parent -> IS_CHILD.test(parent.getChild);
private static final Predicate<Parent> IS_PARENT = Objects::nonNull;
private static final Predicate<Parent> IS_FATHER = IS_PARENT.and(HAS_SON);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM