2014-09-30 52 views
1

我有兩個不同的類,Stack<E>Queue<E>,其具有具有完全相同的名稱(void add(E item)E remove()boolean isFull() & boolean isEmpty())的方法。限制通用的Java輸入到兩種類型之一

我期待實施一個通用類Container<ContainerType>其中ContainerType可能只能是StackQueue

我試過如下實現這一點,但語法似乎是不正確的:

public class Container<ContainerType extends Stack & Queue> {} 

我猜,這是很常見的,並且會有這樣做預先存在的方式,但我米無法找到它。任何幫助將不勝感激!

+2

您需要將「堆棧」和「隊列」之間的通用性分解出來,並使它們成爲支持的基類(或接口)。 – Pointy 2014-09-30 21:17:52

+0

@Pointy:哦!傻我。謝謝。你能把它作爲答案發布,以便我能接受它嗎? – 2014-09-30 21:18:55

回答

2

雖然事情可以變得更加複雜,在這種情況下,它看起來像你需要將你的「Stack」和「Queue」類的通用接口組件分解成一個公共基類,或相互支持的界面。那麼通用簽名會非常明顯,我認爲。