我正在使用tutorial学习Minecraft。在使用java.util.ArrayList ITEMS
创建了for-each循环之后,我必须创建一个if语句if (item instanceof IHasModel)
。 Eclipse指出if语句中的项目引用不能解析为变量。
我正在使用Windows 10,JDK 8u192和Forge 14.23.5.2768。我尝试过在for-each循环中更改net.minecraft.item.Item
的名称,然后在if语句中使用更改后的名称。
@SubscribeEvent
public static void onModelRegister(ModelRegistryEvent event)
{
for(Item item : ModItems.ITEMS);
{
if (item instanceof IHasModel)
{
((IHasModel)item).registerModels();
}
}
}
我期望没有错误,但是Eclipse说item
不能在循环中的任何地方都被解析为变量。
答案 0 :(得分:0)
看看您的for
循环。
for(Item item : ModItems.ITEMS);
{
if (item instanceof IHasModel)
{
((IHasModel)item).registerModels();
}
}
在for循环的第一行后面有一个分号(;
),导致它成为no operation
(浪费CPU时间)
为了更好地理解,在此处澄清“ long”是同样的事情:
for(Item item : ModItems.ITEMS)
{
//nop;
}
// We are out of the for-loop scope. There is no "item" here...
{
if (item instanceof IHasModel)
{
((IHasModel)item).registerModels();
}
}
要使代码正常工作:
从;
for(Item item : ModItems.ITEMS);