Java 表达式的类型必须是数组类型,但已解析为TileSet

Java 表达式的类型必须是数组类型,但已解析为TileSet,java,Java,我正在尝试编写一个Java RPG游戏,但是tileSet加载程序无法工作。 代码如下: TileSet tileSet1 = new TileSet("/tiles/rpg.png", 12, 12, 0, null); Level level = new Level(this, "/level/level1.txt", tileSet); 这会导致错误。这应该通过它来执行,但问题是它是一个数组。但它需要是类中其他方法的数组: public Level(Game game, String p

我正在尝试编写一个Java RPG游戏,但是
tileSet
加载程序无法工作。 代码如下:

TileSet tileSet1 = new TileSet("/tiles/rpg.png", 12, 12, 0, null);
Level level = new Level(this, "/level/level1.txt", tileSet);
这会导致错误。这应该通过它来执行,但问题是它是一个数组。但它需要是类中其他方法的数组:

public Level(Game game, String path, TileSet[] ts1) {
  this.game = game;
  this.ts = ts1;
  String file = Utils.loadFileAsString(path);
  String[] tokens = file.split("\\s");
  sizeY = Utils.parseInt(tokens[1]);
  tileMap = new int[1][sizeX][sizeY];
  int i = 2;
  for(int y = 0; y < sizeY; y++){
    for(int x = 0; x < sizeX; x++){
      tileMap[0][x][y] = Utils.parseInt(tokens[i++]);
    }
  }
}
公共级别(游戏、字符串路径、TileSet[]ts1){
这个游戏=游戏;
这1.ts=ts1;
String file=Utils.loadFileAsString(路径);
String[]tokens=file.split(\\s”);
sizeY=Utils.parseInt(令牌[1]);
tileMap=newint[1][sizeX][sizeY];
int i=2;
对于(int y=0;y

为什么会这样?

构造函数在最后一个参数中需要一个数组,但您只传递了一个对象。尝试将其包装到数组中,如:

Level level = new Level(this, "/level/level1.txt", new TileSet[]{tileSet});

TileSet是什么?我想知道我们应该如何在这里提供帮助。您将一个
TileSet
传递给构造函数,并编写该构造函数以期望使用数组。我们不知道为什么您只传递一个数组,或者为什么您编写的构造函数需要一个数组,以及它应该如何处理它。@Tom啊,是的,我没有注意到它是一个构造函数。格式错误会导致这种情况。他/她应该能够独自解决这个问题。因此,瓷砖集是一组瓷砖,用于生成或创建地图。我需要那个构造器的帮助OAs之前说过:构造函数需要一个
TileSet[]
,但您作为
TileSet
传递。tyes不匹配。一个快速而肮脏的修复方法是将
TileSet[]ts1
更改为
TileSet。。。ts1
(称为varargs,有关更多信息,请参阅)。但我希望这会破坏其他东西。不,对不起,这不起作用。它仍然是一扇灰色的窗户。所以现在,这个错误出现在线程“thread-0”java.lang.ArrayIndexOutOfBoundsException:5在de.Gandaldl1783.Level.getTilesTouched(Level.java:37)在de.Gandaldl1783.Biote.move(biote.java:33)在de.Gandaldl1783.Player.update(Player.java:19)在de.Gandaldl1783.Game.update(Game.java:84)在de.Gandaldl1783.Game.run(Game.java:54)位于java.lang.Thread.run(未知源代码)所有内容都发布在这里,@Gandalf1783这是一个不同的问题。Ruslan的回答解决了您在上面问题中提出的问题。是的,但当我遇到新问题时,我会寻求更多帮助。当然,感谢您的解决方案,但它一点也没有消失。@Gandalf1783如果您有新问题,请再问一个新问题。阅读之前re.我们都准备好帮助:)@Gandalf1783如果出现新问题,请提出新问题。否则,您可能会使现有答案无效。还有,请拿这个。