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

方法返回流是否安全?

王骏
2023-03-14
public List<String> myMethod(String query, int limit)

共有1个答案

何建中
2023-03-14

它不仅是安全的,而且是首席Java架构师推荐的。

特别是如果您的数据是基于I/O的,因此在调用MyMethod时还没有在内存中具体化,那么返回流而不是列表是非常可取的。客户机可能只需要消耗其中的一部分,或者将其聚合成一些固定大小的数据。因此,您有机会从O(n)内存需求到O(1)内存需求。

请注意,如果并行化对于您的用例来说也是一个有趣的想法,那么建议您使用自定义的拆分器,其拆分策略适合于I/O数据源的顺序性质。在这种情况下,我可以推荐我的一篇博客文章,它展示了这样一个分裂器。

 类似资料:
  • 文件: Authentication authenticate(Authentication Authentication)抛出AuthenticationException使用与AuthenticationManager相同的约定执行身份验证。参数:authentication-身份验证请求对象。返回:包含凭据的经过完全身份验证的对象。如果AuthenticationProvider无法支持传递

  • 问题内容: 我有这样的代码来使用读取文本文件: 它可以正常工作,但是Findbugs报告警告: NP_DEREFERENCE_OF_READLINE_VALUE:取消引用调用readLine()的结果,而不检查结果是否为null。如果没有更多的文本行要读取,则readLine()将返回null,并取消引用将生成一个null指针异常。 当我更改为时,即 该方法返回而该方法始终返回-实际上这是一个无限

  • 返回 Stream 的方法是否有命名约定?我发现的唯一提及是在S.O(最后一段)上的答案,但我不明白它基于什么。

  • 问题内容: 显然,该方法的返回类型为void,因此,它不返回任何内容。从这个意义上讲,我使用“返回”一词来表示将响应发送回请求它的客户端。 我正在尝试实现一个长轮询的Servlet。最好在我有想要发回的东西之前不发送响应,这将是有益的。因此,在doGet方法中,将连接的用户的ID和AsyncContext添加到映射中: 然后,当我有东西要发回时,我可以检索适当的上下文并写入其响应输出流: 但是,客

  • 问题内容: 我正在使用模拟器玩掷骰子,并且试图从同一方法返回两个值(或者我想这样做)。 当我写我的return语句时,我只是尝试放入“&”,它可以编译并正常运行;但是我无法访问第二个返回值。 当我将值返回为: 它适当地设置了赢或输的变量,但是如果我尝试执行以下语句中的简单操作: 它被分配与gamestatus相同的值… 0或1(赢或输)。以任何方式可以访问第二个返回值?还是有完全不同的方法来解决?

  • 问题内容: 这些天来我一直在学习Java,而我读到的才是真正有趣的。现在,我想知道C#中的Properties和Accessor方法是否相同?还是C#已经自动返回克隆的副本? 谢谢。 问题答案: 引用就是……对存储在内存中的某个对象的引用。除非您明确编写代码以创建克隆并返回对该对象 的引用 ,否则您将始终绕过对同一实例的引用。 它试图避免您遇到的情况是将对象引用移交给您所依赖的调用方。您无法控制谁