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

Spring-Data JPA CrudRepository返回Iterable,是否可以将其转换为列表?

严曜文
2023-03-14

我正在编写一个code-gen工具,用于使用Spring-Data-Jpa为Spring-boot应用程序生成后端连接代码,CrudRepository中的方法返回Iterable而不是List,这让我有点恼火,因为Iterable没有提供足够的功能,但是List提供了,所以我正在寻找将Iterable转换为List的最佳方法。

我看到了这篇关于将可迭代转换为集合的文章,我想知道,与其使用像Guava这样的库或实现我自己的函数来进行转换,为什么不直接将其转换为List呢?做那件事有什么我不知道的问题吗?

编辑:我这么问是因为它是一个代码生成工具,所以让它生成的代码引入了对第三方库的依赖是不合理的,而且编写我自己的函数来进行转换也是不合理的,因为它必须在某个地方存在,而我不希望在生成的代码中有这样的东西。一个简单的演员阵容就行了,如果有点难看,但我只是想知道我是不是缺少了什么?

共有1个答案

陶山
2023-03-14

不,我觉得不太好。

虽然列表被保证为可迭代可迭代可能不是列表。这意味着,如果您将iterable强制转换为list,它可能会在运行时失败。即使它可以工作,也不能保证它将来会继续工作,因为它可能会在Spring Data JPA的新版本中发生变化,而不会破坏接口的契约。

您应该声明自己的返回list的查询方法,而不是使用强制转换。

 类似资料:
  • 我目前正在使用平铺地图为pyplay中的一个游戏开发地图编辑器。关卡由以下结构中的块构建而成(尽管要大得多): 其中“1”是一块墙,“0”是一块空空气。 以下代码基本上是处理块类型更改的代码:

  • 问题内容: 我注意到Gson将字符串“ <”转换为JSON输出中的Unicode转义序列。您是否可以避免这种情况,还是必须始终在JSON中转义“ <”和“>”之类的字符? 考虑下面的示例:我只想 。 上下文:我正在创建的JSON片段与HTML页面甚至JavaScript无关;它只是用来将某些结构化信息传递给另一软件(嵌入在设备中,用C编写)。 问题答案: 您需要禁用HTML转义。

  • 我需要为我的反应式spring应用程序实现一个graphql查询解析器。 以下是我的graphlq模式: 我的解析器如下所示: 我使用的是5.0.2和5.2.4

  • 问题内容: 我知道,当我阅读答案时,会发现我已经忽略了我眼中的事物。但是我花了最后30分钟试图自己弄清楚,但没有结果。 因此,我正在用Java 6编写程序,并发现了一些(对我而言)奇怪的功能。为了尝试隔离它,我举了两个小例子。我首先尝试了以下方法: 编译器拒绝了它:类型不匹配:无法从null转换为int。 这对我来说很好,并且尊重我熟悉的Java语义。然后我尝试了以下方法: 编译没有错误!但是,我

  • 问题内容: 期望: 结果: Jsoup可以将值HTML转换为XHTML吗? 问题答案: 见: