0

我正在关注 youtube 上的教程,当我到达我应该使用“this.path”之类的部分时,但我似乎遇到了错误。我似乎找不到任何解决方案。

这是视频的链接:http ://www.youtube.com/watch?v=o7pfq0W3e4I

package gfx;

import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;

public class SpriteSheet {

public String path;
public int width;
public int height;

public int[] pixels;


public SpriteSheet(String path) {
    BufferedImage image = null;

        try {
image =     ImageIO.read(SpriteSheet.class.getResourceAsStream(path));
        } catch (IOException e) {
            e.printStackTrace();
        }


    if(image == null);{
        return;
    }


    this.path = path;
    this.width = image.getWidth();
    this.height = image.getHeight();    

    pixels = image.getRGB(0, 0, width, height, null, 0, width);

    for(int i = 0; i <= pixels.length;i++){
        pixels[i] = (pixels[i] & 0xff)/64;
    }


    for(int i = 0;i <= 8;i++) {
        System.out.println(pixels[i]);
    }


}       
}
4

1 回答 1

7

你的错误在这里:

if(image == null);{
    return;
}

语句后有一个额外的分号if。这应该是:

if(image == null) {
    return;
}

分号结束 if 语句;换句话说,if(image == null)什么都不做,然后运行return;

Java 不允许无法访问的代码。由于return无论 if 条件如何都在运行您的语句,因此无法达到该点之后的任何内容。

于 2013-04-06T04:14:28.847 回答