该方法必须覆盖或实现超类型方法

Gri*_*ite 5 java minecraft minecraft-forge

我正在制作一个自定义装甲,在我的盔甲课中,我收到了这个错误:

ArmorE类型的方法getArmorTexture(ItemStack,Entity,int,int)必须覆盖或实现超类型方法

为什么我收到此错误?

这是我的代码:

护甲等级:

package com.domoq.EmeraldGear.armor;

import com.domoq.EmeraldGear.EmeraldGearMod;

import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;

public class ArmorE extends ItemArmor {

    public ArmorE(ArmorMaterial part2ArmorE, int part3, int part4) {
        super(part2ArmorE, part3, part4);
        this.setCreativeTab(CreativeTabs.tabCombat);
    }

    @Override
    public String getArmorTexture(ItemStack stack, Entity entity, int slot, int type) {
        if (stack.getItem() == EmeraldGearMod.EmeraldHelmet || stack.getItem() == EmeraldGearMod.EmeraldChest || stack.getIconIndex() == EmeraldGearMod.EmeraldBoots) {
            return "emeraldgearmod:textures/models/armor/ArmorL1.png";
        } else if (stack.getItem() == EmeraldGearMod.EmeraldLegs) {
            return "emeraldgearmod:textures/models/armor/ArmorL2.png";
        } else return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

主类的一部分:

//Armor Material
public static ArmorMaterial ArmorE = EnumHelper.addArmorMaterial("AEmerald", 29, new int[]{3, 7, 4, 2}, 25);

//Armor Items
public static Item EmeraldHelmet = new ArmorE(ArmorE, 2, 0).setUnlocalizedName("EmeraldHelmet").setTextureName("emeraldgearmod:emerald_helmet");
public static Item EmeraldChest = new ArmorE(ArmorE, 2, 1).setUnlocalizedName("EmeraldChest").setTextureName("emeraldgearmod:emerald_chestplate");
public static Item EmeraldLegs = new ArmorE(ArmorE, 2, 2).setUnlocalizedName("EmeraldLegs").setTextureName("emeraldgearmod:emerald_leggings");
public static Item EmeraldBoots = new ArmorE(ArmorE, 2, 3).setUnlocalizedName("EmeraldBoots").setTextureName("emeraldgearmod:emerald_boots");
Run Code Online (Sandbox Code Playgroud)

sof*_*fs1 17

如果您使用的是Eclipse,请尝试关闭并再次打开它.错误消失了.

  • 尽管这个答案被低估了,但遗憾的是,这是Eclipse问题的一个有效答案. (6认同)
  • 2021 年 3 月 & 这是有帮助的答案 (2认同)

Psy*_*ode 6

这意味着您不需要覆盖注释,因为您没有覆盖或实现该方法的某些内容。因此,您应该只删除

@Override
Run Code Online (Sandbox Code Playgroud)


Rei*_*eus 5

要覆盖方法,签名需要与超类的匹配.更换

public String getArmorTexture(ItemStack stack, Entity entity, int slot, int type) {
Run Code Online (Sandbox Code Playgroud)

public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) {
Run Code Online (Sandbox Code Playgroud)