- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法理清这一点。
public class MySingleton<T extends AUsefulClass>{
Map<String, T> myUsefulRegistry;
private static MySingleton<T> _instance = null;
public static instance(){
if(instance == null)
_instance = new MySingleton<T>();
return _instance;
}
}
public class Test{
@Test
public void testThis(){
MySingleton<SomeClass> mySingleton = MySingleton<SomeClass>().instance();
}
}
这种参数化是错误的,因为你不能对非静态 T 进行静态引用。不过,我还是想构建一个可参数化的单例类。
最佳答案
问题在于,在 Java 中(与 .NET 不同)无论您提供多少种不同的类型参数,您都只有一个静态变量 - 所以 MySingleton<Foo>._instance
等于MySingleton<Bar>._instance
.
我怀疑你想要一个 Map<Class<? extends AUsefulClass>, MySingleton>
,抑制有关原始类型的警告。然后你会做你的instance
方法采取 Class<T>
参数,所以它知道要查找什么。
当然,这是假设您希望不同类型的参数具有单独的状态。如果您不需要 MySingleton<Foo>
需要不同的状态和 MySingleton<Bar>
您可以真正拥有一个实例,并在抑制未经检查的转换警告的同时转换它。
关于参数化类的java单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5081829/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!