小编Sim*_*mon的帖子

如何在Java中实现抽象的单例类?

这是我的示例抽象单例类:

public abstract class A {
    protected static A instance;
    public static A getInstance() {
        return instance;
    }
    //...rest of my abstract methods...
}
Run Code Online (Sandbox Code Playgroud)

以下是具体实施:

public class B extends A {
    private B() { }
    static {
        instance = new B();
    }
    //...implementations of my abstract methods...
}
Run Code Online (Sandbox Code Playgroud)

不幸的是我无法在B类中获取静态代码来执行,因此实例变量永远不会被设置.我试过这个:

Class c = B.class;
A.getInstance() - returns null;
Run Code Online (Sandbox Code Playgroud)

还有这个

ClassLoader.getSystemClassLoader().loadClass("B");
A.getInstance() - return null;
Run Code Online (Sandbox Code Playgroud)

在eclipse调试器中运行这两个,静态代码永远不会被执行.我可以找到执行静态代码的唯一方法是将B的构造函数的可访问性更改为public,并调用它.

我在Ubuntu 32bit上使用sun-java6-jre来运行这些测试.

java inheritance singleton abstract-class classloader

23
推荐指数
2
解决办法
4万
查看次数

如何在Eclipse中查看java日志文件

我在Eclipse中运行了一些JUnit测试,我的代码使用java日志API生成XML日志文件.(java.util.logging中).除了读取原始XML之外,还有一种简单的方法可以在Eclipse中查看此XML日志输出吗?具体来说,我希望能够轻松查看不同日志消息的来源.

java xml eclipse logging

7
推荐指数
1
解决办法
6903
查看次数

如何在Django中从2个不同的模型对象创建表单对象?

我有两个来自不同Model类的对象,并希望显示一个包含每个对象的表单.我怎样才能做到这一点?

django django-forms

2
推荐指数
1
解决办法
982
查看次数