在 LibGDX 中平铺无法将 java.lang.String 转换为 java.lang.Boolean

Tiled in LibGDX cannot cast java.lang.String to java.lang.Boolean

我正在尝试创建一个函数来检查 Tiled 中的单元格是否可以通过,方法是访问布尔自定义 属性 我给了每个图块。这是我的(部分)代码。

...
public boolean isCellPassable(int column, int row, MapLayer layer) {
    boolean canPass = Boolean.valueOf((Boolean) ((TiledMapTileLayer) layer).getCell(column, row).getTile().getProperties().get("can_pass"));
    if (canPass == true) {
        return true;
    }
    else {
        return false;
    }
}

public void displayHUD(ShapeRenderer hud) {
    System.out.println(isCellPassable(0, 6, Main.level1.getLayers().get("base")));
...

即使在 isCellPassable 函数中我将其转换为布尔值,出于某种原因我仍然会收到此错误..

Exception in thread "LWJGL Application" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean

.. 在我设置 canPass.

值的那一行

您可能应该删除对 Boolean 的转换,并确保选择了 Boolean.valueOf(String) 重载。