Pra*_*p S 8 java singleton enums
我试图在Java中创建一个单例类.Java5及以上版本的最佳可用解决方案似乎正在使用enum.但我不知道如何使用我的类转换为单例类enum.以下是我的简化课程:
public class Employee {
private int id;
private String name;
public Employee() {}
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getName() {
return name;
}
public void setName( String name ) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
当我在网上搜索答案时,我发现了以下代码:
public enum EasySingleton{
INSTANCE;
}
Run Code Online (Sandbox Code Playgroud)
但是我的类变量和方法在哪里?我不知道如何实现这一点.我知道我们可以提供方法,enum但我的变量在哪里?任何有关这方面的帮助将非常感激.
PS:如果单身人士是邪恶的或反模式,请不要辩论.我只是想知道如何创建一个单身人士enum.
sla*_*dan 12
类和枚举之间的差异并不大.我更改了第一行代码public enum而不是public class添加了实例的名称.
public enum Employee { // changed "class" to "enum"
INSTANCE; // added name of the (single) instance
private int id;
private String name;
Employee() {} // removed "public"
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getName() {
return name;
}
public void setName( String name ) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
请记住,如果你想在一个vm中多次运行你的代码,singeltons,枚举实例,静态事物可能会在以后阻碍你.考虑Employee在主类中创建一个实例并将其传递给您的应用程序.
除此之外,枚举还有一些其他特殊功能:
extend另一个班(只implements)static values()和getName())可用| 归档时间: |
|
| 查看次数: |
6048 次 |
| 最近记录: |