作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在 stackoverflow 上阅读了很多关于使用枚举创建单例类的内容。我一定错过了什么,因为我无法到达任何地方的实例。
这是我的代码:
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();
关于java - 使用枚举的单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8027701/
我是一名优秀的程序员,十分优秀!