我正在编写一个代码生成工具,以使用Spring-Data-Jpa为Spring- boot应用程序生成后端接线代码,这让我有点讨厌,因为CrudRepository中的方法返回Iterable而不是List,因为iterable不能提供足够的功能功能,但List可以,所以我正在寻找将Iterable转换为List的最佳方法。
我看到了这篇关于将迭代器更改为集合的文章,我想知道,与其使用像Guava这样的库或实现我自己的函数来进行转换,为什么不将其转换为List?这样做有什么我不知道的错误吗?
编辑:我问,因为因为它是一个代码生成工具,所以使其生成引入对第三方库的依赖关系的代码是不合理的,并且编写我自己的函数进行转换也不是很合理,因为它必须存在于某个地方我宁愿不要在生成的代码中使用它。如果有点丑陋,可以进行简单的转换,但是只是想知道我是否缺少某些内容?
不,我认为还可以。
虽然a List被保证为an Iterable,Iterable但不一定是a List。这意味着,如果您确实将Iterable转换为List,可能会在运行时失败。即使它可以工作,也不能保证它将来会继续工作,因为它可以在新版本的SpringData JPA中进行更改而不会破坏接口的合同。
List
Iterable
而不是使用强制类型转换,您应该声明自己的return方法List。