作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试与 Guava 的 ClassToInstanceMap<MyObject>
合作.
我想让我的客户使用一种方法addMyObject(MyObject)
,所以我尝试编写这些方法:
private final ClassToInstanceMap<MyObject> instances = MutableClassToInstanceMap.create();
public void addMyObject1(MyObject o) {
instances.putInstance(o.getClass(), o);
}
public <O extends MyObject> void addMyObject2(O o) {
instances.putInstance(o.getClass(), o);
}
但是自然地,这两种方法都不能编译。
那么,如何正确使用它呢?
最佳答案
由于您确定 o
是 MyObject
的实例,因此您实际上不需要使用类型安全的 putInstance
方法。您可以只使用标准的 put()
:
private final ClassToInstanceMap<MyObject> instances = MutableClassToInstanceMap.create();
public void addMyObject(MyObject o) {
instances.put(o.getClass(), o);
}
ClassToInstanceMap
无论如何都会对实例的类型进行运行时检查。
也就是说,我对使用类型安全方法来执行此操作感兴趣。也许有一些 Java 泛型魔法:)
关于java - 如何使用Guava的ClassToInstanceMap<B>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10246757/
我需要实现 ContraintValidatorFactory 接口(interface),它是 jsr303 的一部分 public interface ConstraintValidatorFac
我是一名优秀的程序员,十分优秀!