java中的单例模式可以这样写吗?
Java code
public class Test1
{
public static void main(String[] args)
{
Aaa a=Aaa.xxx;
Aaa b=Aaa.xxx;
System.out.println(a.toString());
System.out.println(b.toString());
}
}
class Aaa
{
private Aaa()
{
}
public static Aaa xxx=new Aaa();
}
------解决方案--------------------
class Aaa
{
private Aaa()
{
}
public static Aaa xxx=new Aaa();
}
建议将成员字段变为 private,改用 getInstance() 方法获取
class Aaa
{
private Aaa()
{
}
private final static Aaa xxx=new Aaa();
public static Aaa getInstance() {
return xxx;
}
}
------解决方案--------------------就是说你的钱都暴露在外面了,我们可以直接拿
------解决方案--------------------你的静态成员xxx是public,外部可以直接访问的,Aaa.xxx=null;而提供一个静态方法返回则实例不会出现这个问题