簡體   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