2016-05-16 48 views
-2

我对此代码有问题,它说“无法访问的代码”。
上面说的是Eclipse编辑器中的无法访问的代码

EntityLivingBase entity = (EntityLivingBase) theObject; 

是无法访问的代码。
这里是我的代码:

@Override 
public void onRender() { 

    if (!this.isToggled()) 
     return; 

    for(Object theObject : mc.theWorld.loadedEntityList) { 
     if(!(theObject instanceof EntityLivingBase)) { 
      continue; 

      EntityLivingBase entity = (EntityLivingBase) theObject; 

      if(entity instanceof EntityPlayer) { 
       if(entity != mc.thePlayer) 
        player(entity); 
       continue; 
      } 

      if (entity instanceof EntityMob) { 
       mob(entity); 
       continue; 
      } 

      if (entity instanceof EntityAnimal) { 
       animal(entity); 
       continue; 
      } 

      passive(entity); 
     } 
    } 
super.onRender(); 
} 
+0

我怀疑你可以删除所有这些继续语句,并且你的逻辑在最初的if语句中是错误的。 '!(EntityLivingBase的Object实例)'应该是'EntityLivingBase'的对象实例,然后你立即将它转换为它。不要称之为“theObject”。称之为比这更有意义的东西:) – ManoDestra

+0

谢谢,你这为我工作! 现在工作。 〜我没有真正使用Java脚本,我还在学习。 谢谢! – LiamYS

+0

@LiamYS请学习[tag:java]和[tag:javascript]之间的区别(除了相似的名称和algol-like语法外,它们很**不同)。 –

回答

0

随着continue你结束在该点的迭代。其余代码无法访问,因为它永远不会被处理。

+0

所以我需要删除继续; ? – LiamYS

0

continue关键字使Java跳过代码的其余部分,然后重新迭代for循环中的下一个元素。在for循环中的其余代码有时间运行之前,您的代码所做的就是跳到下一个迭代。我真的不知道你为什么把它放在那里,也许是误解它的用途?

0

其他人说的是正确的。 continue总是跳过其余的代码,因为它永远不会被达到,所以它变得毫无用处,因此你会得到无法访问的语句错误。

我认为这是一个错字的错误,如果我理解正确的话,则代码应该是:

if(!(theObject instanceof EntityLivingBase)) { 
     continue; 
} // This is missing. 

的代码的其余部分应该是你关闭if块之后。