- 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;而提供一个静态方法返回则实例不会出现这个问题