当前位置: 首页 > 知识库问答 >
问题:

为什么我不能使用Java映射来更改流中对象的类型?[重复]

柴英博
2023-03-14

我正在处理一个web服务,它一次加载ApplicationResponse对象n。我想创建一个流,它允许我使用所有这些流,而不必担心分页,因此我(不完整)使用了Java流。

我有一个生成页码的流。我想使用我以前写的函数将这些数字映射到响应流。

问题是,它似乎希望我的arrow函数返回int,而不是我所期望的流。

如何重写此表达式以使映射操作正常工作?

共有2个答案

金瑞
2023-03-14

因为您使用的是IntStreamwhich。map方法也应返回InstStream,如果您想将IntStream转换为通常的对象流,则应使用。boxed()将返回整数流,或调用mapToObj()将使用指定的映射函数将整数映射到其他一些对象。

薛弘壮
2023-03-14

IntStream.map()方法将IntUnaryoperator作为参数。正如你可以看到在Java留档:

公共接口IntUnaryoperator

表示对单个int值操作数的操作,该操作生成int值结果。这是int的UnaryOperator的原语类型专门化。

这种类型的函数消耗int并产生int

正如nickb所建议的,您应该使用mapToObj方法,该方法接受IntFunction参数类型(Java文档):

公共接口函数

表示接受int值参数并生成结果的函数。这是函数的int消耗原语专门化。

它们可以生成任何类型的对象。

 类似资料:
  • 我正在使用Spring AOP来点切我的控制器方法,并尝试将公共结构响应返回到前端。定义如下: 我还有一个点定义如下: 例如,当控制器返回类型中的方法为时,在执行后,返回类型从转换为时,则Spring AOP将出现异常 如果我将此方法的返回类型更改为Object,它将正常工作。 我只想知道这是设计成这样的吗?否则,有没有任何方法,我可以实现这个目标,而不修改返回类型到对象。因为感觉很奇怪,所有方法

  • 当我试图在Django管理面板中查看我的产品时,出现以下错误。在我的产品模型中,我有“models.DecimalField”,我认为这很重要。Django错误描述 base.py第34行是一个函数: 更多信息:无效操作at/admin/products/products/ 产品/admin.py 来自django。contrib导入管理 从…起进口产品模型 管理地点登记册(产品)

  • 问题内容: 我想知道为什么允许它具有不同类型的对象引用?例如; 您能否举一个使用不同类型的对象引用有用的示例? 编辑: 问题答案: 这是多态性和抽象的核心。例如,这意味着我可以写: …并处理 任何 类型的输入流,无论是来自文件,网络,内存中的输入流。还是同样地,如果您有一个,则可以不考虑其实现而要求其元素0。 将子类的实例视为超类的实例的能力称为Liskov的替代原理。它允许松散耦合和代码重用。

  • 问题内容: 当使用Eclipse从表中生成JPA实体时(对于Java EE Developers,它是Juno 4.2),它建议作为我设置为的属性的默认映射类型。 这很烦人,因为我必须将它们全部手动设置。 有人遇到过这种问题并且知道该怎么办吗?这是错误吗?Eclipse Indigo的行为并非如此。 这是来自:(但根据此文件应映射到此文件,必须是错误的文件- 但是如何找出正确的文件?) 我的SQL

  • 我试图使用流按国籍对我的对象进行分组并打印出来。 但是它说:"不能解析方法'println"