我在关于使用枚举创建单例类的stackoverflow上阅读了很多。
我一定错过了一些东西,因为我无法在任何地方到达INSTANCE。
这是我的代码:
public class UserActivity {
private DataSource _dataSource;
private JdbcTemplate _jdbcTemplate;
static enum Singleton {
INSTANCE;
private static final UserActivity singleton = new UserActivity();
public UserActivity getSingleton() {
return singleton;
}
}
public UserActivity() {
this._dataSource = MysqlDb.getInstance().getDataSource();
this._jdbcTemplate = new JdbcTemplate(this._dataSource);
}
public void dostuff() {
...
}
}
在外面我想做
UserActivity.INSTANCE.getSingleton()
要么
UserActivity.Singleton.
但是eclipse的代码完成没有找到任何东西
谢谢!
最佳答案
诀窍是使枚举本身成为单例。尝试这个:
public enum UserActivity {
INSTANCE;
private DataSource _dataSource;
private JdbcTemplate _jdbcTemplate;
private UserActivity() {
this._dataSource = MysqlDb.getInstance().getDataSource();
this._jdbcTemplate = new JdbcTemplate(this._dataSource);
}
public void dostuff() {
...
}
}
// use it as ...
UserActivity.INSTANCE.doStuff();