Добавление final к переменной примитивного типа делает ее неизменной.
Добавление окончательного к объекту мешает вам изменять его ссылку, но по-прежнему изменяемые.
Использование изменяемых объектов в качестве константы
Я пытаюсь использовать ImageIcon в качестве конечной константы, но в то же время я не хочу, чтобы изображение было изменчивым. Можно ли просто использовать изменяемые объекты в качестве константы или есть альтернативы?
Пример Константы:
public static final ImageIcon bit0 = new ImageIcon("bit0.png");
public static final ImageIcon bit1 = new ImageIcon("bit1.png");
Использование констант:
JButton button = new JButton(ClassName.bit0);
JLabel label = new JLabel(ClassName.bit1);
Вместо того, чтобы значок общественности, сделать публичный метод, который возвращает копию иконы. Таким образом, оригинал не может быть изменен никем. – azurefrog