ufk*_*ufk 23 java singleton enums
关于使用枚举创建单例类,我在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() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
在外面我想做
UserActivity.INSTANCE.getSingleton()
Run Code Online (Sandbox Code Playgroud)
要么
UserActivity.Singleton.
Run Code Online (Sandbox Code Playgroud)
但是eclipse的代码完成没有找到任何东西
谢谢!
Ste*_*n C 52
诀窍是使枚举本身成为单身人士.试试这个:
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();
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 13
INSTANCE
是一个成员Singleton
,而不是UserActivity
- 所以你需要:
UserActivity.Singleton.INSTANCE.getSingleton();
Run Code Online (Sandbox Code Playgroud)
但是,你实际上并没有制作UserActivity
单例 - 通常你会将类型本身设为枚举,而不是在类型中嵌入枚举...
归档时间: |
|
查看次数: |
18565 次 |
最近记录: |