我有一个按名称空间划分的缓存。我想使用类类型来确定要使用的缓存。以下方法给出了我要完成的想法。我用这个词很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
是,它可以为您提供帮助。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句