当前位置:  开发笔记 > 编程语言 > 正文

使用可变对象作为常量

如何解决《使用可变对象作为常量》经验,为你挑选了1个好方法。



1> T.J. Crowder..:

我正在尝试使用ImageIcon作为最终常量,但与此同时,我不希望图像可以更改.是否可以将可变对象用作常量,还是有其他选择?

是否可以取决于你.:-)如你所说,暴露一个可变对象的公共引用使它可以突变,所以可能不理想.

在备选方面:由于JButton您使用的构造函数接受Icon,并且Icon是一个非常简单的接口而没有变异方法,您可能希望自己创建一个ImmutableIcon包装类并公开它.

例如:

class ImmutableIcon implements Icon {
    private Icon icon;

    public ImmutableIcon(Icon i) {
        this.icon = i;
    }

    public int getIconHeight() {
        return this.icon.getIconHeight();
    }

    public int getIconWidth() {
        return this.icon.getIconWidth();
    }

    public void paintIcon(Component c, Graphics g, int x, int y) {
        this.icon.paintIcon(c, g, x, y);
    }
}

然后

public static final Icon bit0 = new ImmutableIcon(new ImageIcon("bit0.png"));

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有