我需要接受一個Map,它可以是TypeA或TypeB,如下所示。多種類的上界 - Java泛型
Map<Animal, List<TypeA/TypeB>>
我該如何聲明?我無法爲上限指定兩個類。
Map<Animal, List<? extends Object>> OR Map<Animal, List<Object>>
太寬。我想將其限制爲TypeA或TypeB
有沒有更好的方法?
不能用接口包裝TypeA和TypeB。
編輯: 從答案,我明白,這是不可能的自定義類型。 後續問題是,如果我只使用<? extends Object>
,我該如何檢查類型?是TypeA或TypeB。我應該使用instanceof嗎?代碼示例?
如果'TypeA'和'TypeB'是非協方差類型,那麼除了'?'之外沒有任何選項。擴展對象「。如果你不想要這麼寬泛的類型,那麼你必須在這兩種類型之間建立某種關係。 –