我有使用泛型類聲明和界通配符:Java泛型 - 使用相同通配符多次
class Factory<T extends Logic<? extends Entity>,
U extends DAO<? extends Entity>>
{
}
基本上它是一種通用的工廠,這需要一個邏輯接口(T),並返回一個配置實現。爲了實例化邏輯,我採用了實現DAO接口(U)的適當的DAO類。
邏輯和DAO的兩個接口都是通用的,並將實體的類型作爲它們的類型參數使用。但是,我想進一步限制,以便DAO和邏輯不僅具有擴展實體的類型參數,而且它們擴展相同的實體。結果可能看起來類似於:
class <X extends Entity> Factory<T extends Logic<X>,
U extends DAO<X>>
{
}
我可以通過java泛型實現嗎?
你也應該這樣做,如果你沒有一個已經:'接口邏輯'。 –
Thomas
2011-04-15 12:20:35
好點,托馬斯 – 2011-04-15 12:23:45
我想你在Entity後錯過了一個逗號。你的解決方案可以工作,但是沒有解決方案,我不需要引入第三個類型參數?你的Factory版本可以這樣創建:'Factory = new Factory ();' - 對吧? @托馬斯:邏輯/ DAOs類型參數已經是有界的,這就是爲什麼我覺得工廠中關於關係的附加類型參數是多餘的。 –
atamanroman
2011-04-15 12:23:47