public interface MyStream<T> {
Stream<T> stream();
static <T> MyStream<T> of(Stream<T> stream) {
return () -> stream;
}
}
我在回答中使用了https://softwareengineering.stackExchange.com/A/400492/42195
of
方法返回一个返回委托流的调用。但这又是如何翻译成
的呢?
如果把代码再分开一点,可能会更容易理解:
public interface MyStream<T> {
Stream<T> stream();
}
class Util {
static <T> MyStream<T> of(Stream<T> stream) {
return () -> stream;
}
}
它仍然在做同样的事情,只是更容易跟随一点。
然后在第二步,让我们以“经典”的方式不使用lamda表达式来写这个:
public interface MyStream<T> {
Stream<T> stream();
}
class Util {
static <T> MyStream<T> of(Stream<T> stream) {
return new MyStream<>() {
Stream<T> stream() {
return stream;
}
};
}
}
return new MyStream<>() {
Stream<T> stream() {
return stream;
}
};
() -> stream;
// ^^^^^^^ Return value
//^^ Argument list (in this case empty)
包装流是对Stream的包装,主要被用于当做其他基础流的基类。 构建包装流 var wrapperStream = new WrapperStream(new MemoryStream()); 函数原型 WrapperStream(Stream stream); 参数 描述 stream 基础流(原始) BaseStream 获取包装流的基础流 var baseStream = wrapper
我是lodash的新手,我已经将lodash安装为 我在我的索引中调用它。js文件作为 然而,这是不工作的,它显示在控制台上的错误为 指数js:1未捕获的语法错误:意外的标识符“\u1” 我没有使用节点。js
我被要求检索树节点的每个叶节点。我很快想到我可以在一行中完成这项工作! 第一眼看上去很不错,但很快它就遇到了一个,如果树深度达到~10,这是我无法接受的。后来我开发了一个没有递归和流的实现(但我的大脑被烤坏了),但我仍然想知道是否有一种方法可以用流做递归,因为我发现不接触流内部是不可能做到的。它需要一个新的Op,比如来做到这一点,否则我必须每一步都将所有结果收集到中,然后再对该进行操作: 不像看起
我想将Python安装恢复到其基本状态,以便开始使用。有没有一种简单的方法可以只卸载那些在Python设置之后安装的软件包?
如何用java流重构它?