Java 如何使用作为参数传递给方法的类类型来定义局部变量

Java 如何使用作为参数传递给方法的类类型来定义局部变量,java,Java,我有一个按名称空间划分的缓存。我想使用类类型来确定要使用哪个缓存。下面的方法给出了我想要实现的想法。我松散地使用单词cache。我更感兴趣的是纠正我的设计模式,使其有效 public static DObject getFromCache(String key,Class<T extends DObject> type) { MyCache cache = getWithName(type.getName()); // ...... type.class value =

我有一个按名称空间划分的缓存。我想使用类类型来确定要使用哪个缓存。下面的方法给出了我想要实现的想法。我松散地使用单词
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);
  // ......
}
publicstaticdobject getFromCache(字符串键,类类型){
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类型的变量,但类型擦除意味着您不能强制转换为T。幸运的是,
Class#cast
可以提供帮助。)

谢谢。如果我刚刚作为参数
类类型
传递,我是否可以使用
类型
进行声明?如果是的话,那该怎么办?如果有必要,假设这意味着没有命名接口。不,不能这样做。但是
是泛型的原因是,您可以将实际类型放入这样的类型参数中。