Java//运算符+;未为参数类型字符串void定义
这是我儿子正在做的一个项目,他请我帮助他,但是我目前对“Java”一无所知,因此我发布了他想要回答的问题 “我正在尝试为“Minecraft”制作一个mod,在编写时出现了一个错误,我很难理解任何想法??” //类HypedMetaItemBlockJava//运算符+;未为参数类型字符串void定义,java,operators,minecraft-forge,Java,Operators,Minecraft Forge,这是我儿子正在做的一个项目,他请我帮助他,但是我目前对“Java”一无所知,因此我发布了他想要回答的问题 “我正在尝试为“Minecraft”制作一个mod,在编写时出现了一个错误,我很难理解任何想法??” //类HypedMetaItemBlock import net.minecraft.*; public class HypedMetaItemBlock extends ItemBlock { public HypedMetaItemBlock(Block block) { su
import net.minecraft.*;
public class HypedMetaItemBlock extends ItemBlock {
public HypedMetaItemBlock(Block block) {
super(block);
setHasSubtypes(true);
}
@Override
public String getUnlocalizedName(ItemStack stack) {
String name = "tile." + ((IHypedMetaBlock)Block.getBlockFromItem(stack.getItem())).getNames()[stack.getMetadata()] + ((IHypedMetaBlock)Block.getBlockFromItem(stack.getItem())).getSuffix();
return name;
}
@Override
public int getMetadata(int par1) {
return par1;
}
}
这是IHypedMetaBlock的类,以备需要
public interface IHypedMetaBlock {
public void addNames();
public void getSuffix();
public String[] getNames();
}
正如错误所说,当您对
字符串和void
类型使用+
运算符时,Java不知道该做什么
主要问题似乎是这个方法:getSuffix()
。该方法是void
,意味着它不返回任何内容。这违反了Java命名约定,因为通常,getXX
方法会返回一些东西
您需要确保getSuffix()
返回某些内容,或者重新考虑您的方法。getSuffix方法当前正在返回一个void。我的猜测是,它不应该返回一个空白。仅从方法名称来看,它听起来应该返回一个字符串
但是如果它确实应该返回一个void,那么就不能将方法结果作为字符串使用。((IHypedMetaBlock)Block.getBlockFromItem(stack.getItem())。getSuffix()
不返回任何内容。您不能在字符串中添加任何内容。@Stephen C谢谢您的建议。我会告诉他要长大,不要再像个孩子了谢谢你的帮助我要告诉我儿子:)