繁体   English   中英

列表如何<Long>对具有 BigInteger 值的 ArrayList 的引用

[英]How can a List<Long> references to an ArrayList which has BigInteger values

此方法在 JpaRepository 中定义并运行本机 PostgreSQL 查询。

List<Long> distributorIds = distributorRepository
.findDistributorIdsWithChildren(distributorId)

它毫无例外地运行在运行时我看到返回的distributorIds ArrayList 中的BigInteger 值而不是Long values

与这个问题相同: Spring Data JPA 中的错误:Spring Data 返回 List<BigInteger> 而不是 List<Long>

那么这个bug是怎么发生的呢? 我的意思是 JAVA 如何允许这个 如果 Java 不检查这种类型的错误,这不是 JAVA 中泛型的问题。

注意:我还检查了 Long 和 BigInteger 的类型层次结构,并且没有子/超类关系。

通用类型检查是编译时功能。 在运行时,所有类型信息都会丢失。 参见“类型擦除”。 例如,如果使用非泛型集合的遗留 API 映射到使用泛型并需要集合的强制转换的 API,则您看到的行为很容易发生。 如果该集合碰巧包含意外类型的对象,遗憾的是,您只能在运行时发现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM