我正在尝试使用泛型编写一些代码,但似乎无法弄清楚如何使用@SuppressWarnings。
我有以下内容:
/**
* Cache to know which pool provided which object (to know where to return object when done)
*/
private Map<Object, ObjectPool<?>> objectPoolCache = new ConcurrentHashMap<Object, ObjectPool<?>>();
/**
* Returns a borrowed pool object to the pool
* @param o
* @throws Exception
*/
public void returnToPool( Object o ) throws Exception {
// safety check to ensure the object was removed from pool using this interfact
if( !objectPoolCache.containsKey(o))
throw new IllegalStateException("Object is not in pool cache. Do not know which pool to return object to");
// get the object pool
ObjectPool pool = objectPoolCache.remove(o);
// return the object to the pool
pool.returnObject(o);
}
现在,我ObjectPool pool
在 return 语句上收到一个原始类型的警告和一个类型安全警告。
我的概念如下;我正在寻找对象/池对的映射,以便我知道从哪个池中检索对象,以便知道将对象返回到哪个池。
ObjectPool 可以是任何类型对象的 ObjectPool;不需要特定的超类型。
我试过使用<? extends Object>
,但我不完全确定如何使用它而不会导致编译错误。只是将 替换为<?>
我<? extends Object>
遇到了一个问题,即我的方法使用 Object 作为参数,这与扩展 Object 的池不一致。
任何援助将不胜感激。
谢谢!
埃里克