所以我知道单例模式是这样实现的:
public class ClassName {
private static ClassName instance;
public static ClassName getInstance() {
if (instance == null) {
instance = new ClassName();
}
return instance;
}
private ClassName() {}
}
Run Code Online (Sandbox Code Playgroud)
我想问的是为什么你不能这样做:
public class ClassName {
public static final ClassName instance = new ClassName();
private ClassName() {}
}
Run Code Online (Sandbox Code Playgroud)
更少的代码行,似乎做同样的事情。当然减去延迟初始化,但我不明白为什么延迟初始化无论如何都会有很大的好处。我不是很有经验,如果你能用你的知识启发我,我将不胜感激,谢谢。
我使用以下代码
画布和图像的HTML代码
<canvas id="myCanvas" style="display:none" width="400" height="400"></canvas>
<img id="canvasImg" />
Run Code Online (Sandbox Code Playgroud)
用于从服务器获取图像并在画布上显示然后显示图像的JavaScript代码
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
baseimage = new Image();
baseimage.src = 'what.jpg';
baseimage.onload = function() {
ctx.drawImage(baseimage,1,1);
}
var dataURL = canvas.toDataURL("image/png");
document.getElementById('canvasImg').src = dataURL;
$("#myCanvas").show();
Run Code Online (Sandbox Code Playgroud)
正在显示图像,但没有"what.jpg"文件.在Canvas上,文件是可见的,但在IMG标签中没有任何东西可以看到.我在最新版本的Chrome上运行此功能.