Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不是每次都执行流筛选器方法 公共类测试{ 公共静态void main(字符串[]args){ long filtered=Stream.of(“test1”、“test2”、“test3”) .filter(getPredicate()) .count(); 系统输出打印项次(过滤); } 私有静态谓词getPredicate(){ System.out.println(“打印此”);//item.contains(“测试”); } }_Java - Fatal编程技术网

Java 不是每次都执行流筛选器方法 公共类测试{ 公共静态void main(字符串[]args){ long filtered=Stream.of(“test1”、“test2”、“test3”) .filter(getPredicate()) .count(); 系统输出打印项次(过滤); } 私有静态谓词getPredicate(){ System.out.println(“打印此”);//item.contains(“测试”); } }

Java 不是每次都执行流筛选器方法 公共类测试{ 公共静态void main(字符串[]args){ long filtered=Stream.of(“test1”、“test2”、“test3”) .filter(getPredicate()) .count(); 系统输出打印项次(过滤); } 私有静态谓词getPredicate(){ System.out.println(“打印此”);//item.contains(“测试”); } },java,Java,我希望上面的代码打印3次打印这个。但是它只打印了一次,有人能解释一下吗?getPredicate()在filter()之前被调用,所以您会看到“打印这个”一次。如果希望看到try,则返回的谓词将被调用三次: public class Test { public static void main(String[] args) { long filtered = Stream.of("test1", "test2", "test3") .filter(getPred

我希望上面的代码打印3次打印这个。但是它只打印了一次,有人能解释一下吗?

getPredicate()
filter()
之前被调用,所以您会看到“打印这个”一次。如果希望看到try,则返回的谓词将被调用三次:

public class Test {


  public static void main(String[] args) {

    long filtered = Stream.of("test1", "test2", "test3")
        .filter(getPredicate())
        .count();
    System.out.println(filtered);

  }

  private static Predicate<String> getPredicate() {
    System.out.println("print this");//<-- this line was printed only once
    return item -> item.contains("test");
  }

}
私有静态谓词getPredicate(){
System.out.println(“打印此”);
退货项目->{
System.out.println(“打印那个”);
返回项目。包含(“测试”);
};
}

您的代码调用了多少次
getPredicate()
?调用了一次
private static Predicate<String> getPredicate() {
   System.out.println("print this");
  return item -> {
       System.out.println("print that");
       return item.contains("test");
  };
}