IllegalArgumentException不确定我是否正确编写了数组

IllegalArgumentException not sure if I wrote the array right

提问人:Martin Parunev 提问时间:4/6/2022 最后编辑:hfontanezMartin Parunev 更新时间:4/6/2022 访问量:60

问:

    gamePanel gp;
    Tile[] tile;


    public tileManager(gamePanel gp){
        this.gp = gp;
        tile = new Tile[10]; // this means we're going to create 10 types of tiles (water, grass, water, sand, etc...)
        getTileImage();
    }

    public void getTileImage(){

        try{
            tile[0] = new Tile();
            tile[0].image = ImageIO.read(requireNonNull(getClass().getResourceAsStream("res/tiles/grass.png")));

            tile[1] = new Tile();
            tile[1].image = ImageIO.read(requireNonNull(getClass().getResourceAsStream("/tiles/wall.png")));

            tile[2] = new Tile();
            tile[2].image = ImageIO.read(requireNonNull(getClass().getResourceAsStream("/tiles/water.png")));

        } catch (IOException e) {
            e.printStackTrace();
        }


    }

    public void draw(Graphics2D g2){
        g2.drawImage(tile[0].image,0, 0, gp.tileSize, gp.tileSize, null);
    }
}

第一张图片 第二张图片

所以我正在尝试在我的游戏中添加瓷砖,但我不明白为什么会出现错误?我在网上找到了这个,所以任何如何解决这个问题的建议将不胜感激!

Java 数组 异常 项目

评论

2赞 jsheeran 4/6/2022
请以文本形式发布代码,而不是图像。
1赞 Andy Turner 4/6/2022
你没有得到一个 “NullPointerExecution”,你得到了一个 .IllegalArgumentException
0赞 hfontanez 4/6/2022
您收到该错误是因为您尝试获取的资源在该路径中不存在,从而导致返回标记为 的进程。在这种情况下,该目录中不存在,或者您的路径不正确。如果图像存在,您可以尝试使用完整路径,然后进行优化,以便可以使用正确的相对路径。nullrequireNonNullgrass.png
0赞 hfontanez 4/6/2022
由于该字段标记为“requireNonNull”,因此值 表示非法参数;因此抛出异常。在不知道文件夹结构的情况下,路径很可能是罪魁祸首。null

答: 暂无答案