簡體   English   中英

理解“ImageIO.read(getClass()。getResource(path))”

[英]Understanding “ImageIO.read(getClass().getResource(path))”

我的問題是關於以下代碼示例:

    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流)

3:讀(InputStream輸入)

4:讀取(URL輸入)

我的問題是:在這個例子中使用了哪四種方法? 我有點困惑,因為在示例中站立

read(getClass().getResource(path));

“getClass()”在這里返回“BufferedImageLoader”,對吧? 然后我們調用方法“read(getClass()。getResource(path))”,它必須位於BufferedImageLoader類中,但事實並非如此!

哪里我錯了?

getClass().getResource(path))返回一個URL ,所以在這種情況下,它會使用ImageIO.read(URL)

另外,如果您使用Class#getResourceAsInputStream ,它將返回一個InputStream ,這意味着它將使用ImageIO.read(InputStream)代替

getClass()返回java.lang.Class的類型化實例,在你的情況下Class<? extends BufferedImageLoader> Class<? extends BufferedImageLoader> ,它代表BufferedImageLoader類。 此方法繼承自java.lang.Object並返回該對象的運行時類。
java.lang.ClassgetResource(path)方法返回java.net.URL的實例

<Script = "JavaScript">
alert("Hello");
</Script>
警報('所選項目已成功刪除')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM