[英]How to use class type passed as parameter to method to define local variables
我有一個按名稱空間划分的緩存。 我想使用類類型來確定要使用的緩存。 以下方法給出了我要完成的想法。 我寬松地使用“ cache
”一詞。 我對更正我的設計模式使其更感興趣。
public static DObject getFromCache(String key,Class<T extends DObject> type) {
MyCache cache = getWithName(type.getName());
// ......
type.class value = (type.class) cache.get(key);
// ......
}
其中DObject是命名接口。 如何解決,使type.class value = (type.class) cache.get(key)
正常工作? 我知道這會對Scala開個玩笑,但我想使用Java。
T value = type.cast(cache.get(key));
(您可以很好地聲明T類型的變量,但是類型擦除意味着您不能轉換為T。幸運的是, Class#cast
可以為您提供幫助。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.