首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java中的单例模式可以这样写吗?该怎么解决

2012-04-10 
java中的单例模式可以这样写吗?Java codepublic class Test1{public static void main(String[] args){Aaa

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

热点排行