我关注了辛格尔顿:
public class GameConfig {
private static GameConfig mGameConfig = null;
private String mStr = "Boo";
public static GameConfig getInstance(){
if(mGameConfig == null){
mGameConfig = new GameConfig();
}
return mGameConfig;
}
private GameConfig(){}
public String getStr() {
return mStr;
}
}
现在,我尝试做一些实验:
可以说我还有另一个使用此singelton的类
User
:public class User{
....
private void init(){
String str = GameConfig.getInstance().getStr();
}
}
到现在为止还挺好。
我将采用上述的类
User
并添加import static
:import static com.app.utils.GameConfig.getInstance; // no error, why??
public class User{
....
private void init(){
String str = GameConfig.getInstance().getStr();
// I can't type
// String str = getStr(); !!
// getInstance return instance
}
}
最佳答案
为什么没有错误?因为那是有效的语法。工作正常不是很好吗?
import static com.app.utils.GameConfig.getInstance; // no error, why??
将使
getInstance()
在不命名类的情况下可用,例如:GameConfig gc=getInstance();
作为附带说明,我将方法重命名为更具描述性的名称,例如
getGameConfig
。