0
我正在嘗試編寫一個簡單的緩存類。緩存本質上是一個從類到列表的映射。 我想聲明地圖的方式來強制列表項類與鍵的類相同。以下:在地圖上強制執行仿製
class Cache {
private static Map<Class<? extends CodedEntity>, List<? extends CodedEntity>> map;
}
是不夠的,因爲它不會執行(在其decleration)我想要的。 地圖需要是靜態的,並且將類聲明爲T是沒有意義的,因爲我不希望它僅限於單一類型。有沒有一種語法方式來實現這一點?
當然,我可以做到這一點(而且我做到了),對我來說,我似乎很奇怪,我無法找到一種方法來在字段級別定義這一點。例如,我希望在return語句中不會有編譯器警告。 – Ran 2012-01-29 18:19:19
對不起 - 這不可行。您的API將是外部類型安全的,但是Java類型系統不夠強大,無法證明「此處投射是安全的」。 – 2012-01-29 18:27:23