我的问题是关于以下代码示例:
public class BufferedImageLoader {
private BufferedImage image;
public BufferedImage loadImage(String path) throws IOException {
image = ImageIO.read(getClass().getResource(path));
return image;
}
}
我查看了Java-API并在ImageIO类中找到了3种不同的read()方法:
1 .: 读(文件输入)
2:read(ImageInputStream stream)
3:读取(InputStream输入)
4:读取(URL输入)
我的问题是:在这个例子中使用了哪四种方法? 我有点困惑,因为在示例中代表
read(getClass().getResource(path));
“getClass()”在这里返回“BufferedImageLoader”,对吗? 然后我们调用方法“read(getClass()。getResource(path))”,它必须位于BufferedImageLoader类中,但事实并非如此!
我哪里错了?
答案 0 :(得分:3)
getClass().getResource(path))
会返回URL
,因此在这种情况下,它会使用ImageIO.read(URL)
此外,如果您使用Class#getResourceAsInputStream
,则会返回InputStream
,这意味着它将使用ImageIO.read(InputStream)
而不是
答案 1 :(得分:0)
getClass()会返回java.lang.Class的类型实例,在您的情况Class<? extends BufferedImageLoader>
中代表BufferedImageLoader
类。此方法继承自java.lang.Object并返回对象的运行时类
java.lang.Class
{{1}}方法返回getResource(path)
答案 2 :(得分:0)
<Script = "JavaScript">
alert("Hello");
</Script>
警报('所选项目已成功删除')