Java //对于参数类型String,void,未定义operator +

时间:2017-01-11 07:48:35

标签: java operators minecraft-forge

所以这是我儿子正在做的一个项目,他让我帮助他,但是我目前对“Java”有0个知识,因此我发布了他想要回答的问题。

“我正在尝试为”我的世界“制作一个mod,在编写时出现错误,我正在努力理解任何想法?”

//类HypedMetaItemBlock

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();

}

2 个答案:

答案 0 :(得分:2)

正如错误所述,当您在+String类型上使用void运算符时,Java不会知道该怎么做。

主要问题似乎是这种方法:getSuffix()。该方法为void,意味着它不会返回任何内容。这违反了Java命名约定,因为通常getXX方法返回一些东西。

您需要确保getSuffix()返回某些内容,否则请重新考虑您的方法。

答案 1 :(得分:0)

getSuffix方法当前返回void。我的猜测是它不应该返回空白。只是从方法名称,它听起来应该返回一个字符串。

但是如果确实应该返回一个void,那么就不能将方法结果用作String。