对于参数类型boolean,int,运算符!=未定义

时间:2014-01-22 06:20:18

标签: java minecraft

我一直得到错误操作符!=未定义参数类型boolean,int 在我的代码上,我不知道如何解决它。 错误出现在eclipse和启动中

非常感谢一些帮助:)谢谢!

  private boolean[] ctexture = new boolean[16]; 

  public boolean[] flipTopBottom = new boolean[16];

      this.ctexture[id] = connectedTexture;

  @SideOnly(Side.CLIENT)
  public Icon getIcon(int par1, int par2)
  {
    if ((par1 <= 1) && (this.flipTopBottom[(par2 & 0xF)] != 0)  //The error occurs here// && ((this.icons[(par2 & 0xF)] instanceof IconConnectedTexture))) {
      return new IconConnectedTextureFlipped((IconConnectedTexture)this.icons[(par2 & 0xF)]);
    }
    return this.icons[(par2 & 0xF)];
  }


  @SideOnly(Side.CLIENT)
  public void registerIcons(IconRegister par1IconRegister)
  {
    for (int i = 0; i < 16; i++) {
      if ((this.texture[i] != null) && (this.texture[i] != "")) {
        if (this.ctexture[i] != 0) { //It also occurs here
          this.icons[i] = new IconConnectedTexture(par1IconRegister, this.texture[i]);
        } else {
          this.icons[i] = par1IconRegister.registerIcon(this.texture[i]);
        }
      }

3 个答案:

答案 0 :(得分:12)

你有:

private boolean[] ctexture = new boolean[16];

然后你做:

if(this.ctexture[i] != 0)
        ↑              ↑
     boolean          int

在Java中,你不能这样做,0是intthis.ctexture[i]boolean

您应该这样做:

if(this.ctexture[i]) //if true

你在其他地方也有无效的比较,请修理它们

答案 1 :(得分:0)

在某些语言中,布尔类型与int密切相关,因此将布尔值与0进行比较是有意义的。在Java中,它们是完全不同的类型。 boolean只能与其他布尔表达式进行比较。

要测试布尔为false,请使用!this.ctexture[i]。如果是真的,只需使用布尔值。

答案 2 :(得分:0)

flipToBottom是一个布尔数组,但您尝试将一个条目(布尔值)与整数进行比较。

if ((par1 <= 1) && (this.flipTopBottom[(par2 & 0xF)] != 0) 

这样的东西
if ((par1 <= 1) && !this.flipTopBottom[(par2 & 0xF)]) 

你可能会追求自己。 (一般惯例是不要说if (variable == true)if (variable == false)。请改用if(variable)if (!variable)