作者dream1124 (全新开始)
看板java
标题Re: [问题] 一个 singleton? 的问题
时间Sun Dec 29 18:42:42 2013
※ 引述《qweqweqweqwe (啪)》之铭言:
: 各位板友好,最近遇到了一个跟 Singleton? 有关的问题想请教一下,
: 程式码是凭印象大略打的,所以有误的话还请见谅 QQ
: class Single {
: private Single mInstance;
: public static Single getInstance() {
: if (mInstance == null) {
: mInstance = new Single();
: }
: return mInstance;
: }
静态方法呼叫类别的非静态成员? 程式编译应该过不了
: private Single(){}
: public void reset() {
: mInstance = null;
: }
: }
reset 没加 static 修饰词,单例应该也没办法实现了吧....
NPE 是什麽意思? 我不太懂你是遇到什麽多执行绪问题
如果你是希望在有人 reset 之後呼叫 getInstance 的执行绪不会得到过时的物作
那你可以这样写
public class SingletonTest {
private static SingletonTest instance = null;
public synchronized static SingletonTest getInstance(){
if ( instance == null ){
instance = new SingletonTest();
return instance;
}
return instance;
}
private SingletonTest(){
}
public synchronized static void reset(){
instance = new SingletonTest();
}
}
不需要额外创造一个 SYNC 物件然後在它上面同步,
同歩在类别的方法上就可以了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.102.112
1F:→ qweqweqweqwe:不好意思 的确是我少打,mInstance跟reset()都必须 12/29 20:28
2F:→ qweqweqweqwe:加上 static没错,等等马上修改文章内容 QQ 12/29 20:30