我要加载很多图像,我希望加载是懒惰的。此时,我编写了一个包含所有已加载图像的类。
public static ImageIcon binIcon = getBinIcon();
private static ImageIcon getBinIcon() {
if(binIcon == null) {
return binIcon = FileManipulation.getImage("img/bin.jpg");
}
else {
return binIcon;
}
}
public static ImageIcon checkboxIcon = getCheckboxIcon();
private static ImageIcon getCheckboxIcon() {
if(checkboxIcon == null) {
return checkboxIcon = FileManipulation.getImage("img/checkbox.png");
}
else {
return checkboxIcon;
}
}
...
最后,我有很多重复的代码,我正在寻找一种性感的方式来减少它。
谢谢您的想法!
最佳答案
您可以创建一个方法来接收要加载的图标和文件名:
public static ImageIcon checkboxIcon;
public static ImageIcon binIcon;
private static ImageIcon getCheckboxIcon(ImageIcon icon, String fileName) {
return icon == null ? FileManipulation.getImage(fileName) : icon;
}
它将允许您以这种方式加载图标:
binIcon = getCheckboxIcon(binIcon, "img/bin.png");
checkboxIcon = getCheckboxIcon(checkboxIcon, "img/checkbox.png");