Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.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方法中的Java方法_Java_Design Patterns_Methods - Fatal编程技术网

Java方法中的Java方法

Java方法中的Java方法,java,design-patterns,methods,Java,Design Patterns,Methods,我在几份文件中寻找答案,但我找不到 我想编写的代码是“方法中的方法”。下面是java8(流API)中的示例 private static int sumStream(列表){ return list.stream().filter(i->i>10).mapToInt(i->i.sum(); } 在这些代码中,list调用stream()方法,stream()方法调用filter()方法,mapToInt()方法调用sum()并返回 我怎样才能像这样编码呢??或者,您能告诉我google中的搜索

我在几份文件中寻找答案,但我找不到

我想编写的代码是“方法中的方法”。下面是java8(流API)中的示例

private static int sumStream(列表){
return list.stream().filter(i->i>10).mapToInt(i->i.sum();
}
在这些代码中,list调用stream()方法,stream()方法调用filter()方法,mapToInt()方法调用sum()并返回


我怎样才能像这样编码呢??或者,您能告诉我google中的搜索词或示例代码吗?

您指的是方法调用的链接。这可以在类的方法返回调用它们的实例时实现

例如:

public class A {
    public A foo () {
        // do something
        return this;
    }
    public A bar () {
        // do something
        return this;
    }
}
然后可以链接方法调用:

A a = new A();
a.foo().bar().foo();

谷歌“java streams lambdas”。但是要明白像这样的问题。。。这里不应该问。所以,请花一些时间来学习如何/在这里询问什么。“list call stream()方法,stream()方法调用filter()方法”--不,它不是这样工作的
list.stream()
返回一个
stream
对象。然后调用
Stream
对象的方法
filter()
。返回不同的
。然后调用新的
mapToInt()
,返回另一个新的
。最后,在第三个
流上调用终端操作
sum()
,返回
int
@GhostCat实际上我读了一些关于Java8 Lambda Hello world的文档,但我没有完全理解:(我会更加努力学习。。对不起。@JimGarrison谢谢你让我理解!哦,返回类本身。。好的……我会想得更多!谢谢。@Seung RokBaek不返回类,返回类的实例(对象)。当然,链接也可以通过返回其他类的实例来实现(这将允许您链接不同类的方法调用)。
A a = new A();
a.foo().bar().foo();