java - 我怎样才能创建一个流对象?
问题描述
假设我有:
interface SomeInterface {
Foo getFoo();
}
和
class SomeClass implements SomeInterface {
Foo getFoo() {
//returns a Foo object
}
}
然后在服务中,我有:
List<SomeClass> getItems() {
//returns a list of SomeClass objects
}
不允许执行以下操作:
Stream<SomeInterface> items = service.getItems().stream();
但最终,我有其他类可以共享这个接口并且想做:
someMethod(Stream<SomeInterface> items) {
//some operation
}
有没有解决的办法?喜欢用flatMap
?(我注意到如果我在对象上有一个包装类List
,SomeClass
我可以flatMap
让包装返回一个SomeInterface
对象流。)
我没有找到类似的问题,也不容易看到解决方案。可能是我想念的容易的东西。爪哇 14。
解决方案
如果您的目标是让接口someMethod
流SomeInterface
及其子类型接受,那么您可以使用
/*someReturnTypeHere*/ someMethod(Stream<? extends SomeInterface> items){
//some operation
}
推荐阅读
- jquery - 自动检测浏览器调整大小并更改活动元素
- amazon-web-services - ECS 服务中的所需计数与 MinTask
- javascript - 节点 - 在管道之后正确关闭流
- ios - 如果电子邮件未验证,Apple 将替换电子邮件提供商
- python - 如何从 json 文件中获取密钥对值?
- elasticsearch - Elasticsearch 模板中的未知键
- c# - 在 Startup.cs 中使用 await 将字符串添加到列表
- java - 如何使用 SPARQL 进行排名?
- azure-eventhub - 使用 webMethods java 服务直接将 webMethods Integratioin Server 集成到 Azure 事件中心
- audio - 组合两个 WebRTC 对等点时是否可以同步音频?