1
4

2 回答 2

2

由于您确定这o是 的一个实例MyObject,因此您实际上并不需要使用类型安全的putInstance方法。你可以只使用标准put()

private final ClassToInstanceMap<MyObject> instances = MutableClassToInstanceMap.create();

public void addMyObject(MyObject o) {
    instances.put(o.getClass(), o);
}

ClassToInstanceMap无论如何都会对实例的类型进行运行时检查。

也就是说,我对使用类型安全方法执行此操作的方法很感兴趣。也许是一些 Java 泛型魔法 :)

于 2012-04-20T18:43:36.873 回答
0

只是为了记录,您可以使用缩小 Class 类型

o.getClass().asSubclass(MyObject.class)
于 2012-04-23T09:06:39.263 回答