簡體   English   中英

Java警告未對泛型層次結構進行強制轉換

[英]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的對象強制轉換為[ BInterfaceAInterfaceB ]中的任何一個時,沒有任何警告(如預期)。

但是,當將C強制轉換為A出現未經檢查的強制轉換警告。 為什么?

因為A不在C的繼承鏈中。

 InterfaceA
 /        \
A      InterfaceB
       /
      B
     /
    C

因為C擴展了B,后者實現了InterfaceB,而后者又擴展了InterfaceA。 C不擴展A。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM