基类A
有一种加载数据源的方法
各种类派生自A
,包括派生类B
。
现在我需要在类B
中拥有一个静态成员变量,例如对mStaticOfB
类ALL
个B
实例进行实例化仅的mStaticOfB
。
这里需要注意的是,实例化静态A
我需要使用基类{{1}}继承的数据源。但是我需要一个对象的实例才能得到它而我不需要在那一点上有它。
我怎样才能解决这个问题?有没有一种好的/标准的方法来处理这个问题?我想出的唯一想法(并且尽量不使用)就是这样做 B级单身。
答案 0 :(得分:3)
你可以让B类具有单元化的静态mStaticOfB,当第一次调用构造函数时,iff mStaticOfB
初始化。
private static FieldType mStaticOfB;
...
public B(..){
if(mStaticOfB==null){
//code to set mStaticOfB
}
}
答案 1 :(得分:3)
Nishant所说的,除了线程安全:
private static FieldType mStaticOfB;
...
public B(..) {
super();
synchronized(B.class) {
if (mStaticOfB == null) {
//code to set mStaticOfB
}
}
}