这是我的示例抽象单例类:
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来运行这些测试.
我在Eclipse中运行了一些JUnit测试,我的代码使用java日志API生成XML日志文件.(java.util.logging中).除了读取原始XML之外,还有一种简单的方法可以在Eclipse中查看此XML日志输出吗?具体来说,我希望能够轻松查看不同日志消息的来源.
我有两个来自不同Model类的对象,并希望显示一个包含每个对象的表单.我怎样才能做到这一点?
java ×2
classloader ×1
django ×1
django-forms ×1
eclipse ×1
inheritance ×1
logging ×1
singleton ×1
xml ×1