[英]Java warns that a casting is unchecked for generics hierarchy
如果我為類定義以下類型:
class SomeClass<A extends InterfaceA, B extends InterfaceB, C extends B>
當InterfaceB
擴展InterfaceA
。 B也擴展了A,但我無法聲明。
將類型C
的對象強制轉換為[ B
, InterfaceA
, InterfaceB
]中的任何一個時,沒有任何警告(如預期)。
但是,當將C
強制轉換為A
出現未經檢查的強制轉換警告。 為什么?
因為A不在C的繼承鏈中。
InterfaceA
/ \
A InterfaceB
/
B
/
C
因為C擴展了B,后者實現了InterfaceB,而后者又擴展了InterfaceA。 C不擴展A。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.