web-dev-qa-db-ja.com

メソッドはスーパータイプメソッドをオーバーライドまたは実装する必要があります

私はカスタムの鎧を作っています、そして私の鎧クラスで私はこのエラーを得ています:

タイプ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;
    }
}

メインクラスの一部:

//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");
5
GriffinMite

メソッドをオーバーライドするには、署名が super class の署名と一致する必要があります。交換する

public String getArmorTexture(ItemStack stack, Entity entity, int slot, int type) {

public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) {
5
Reimeus

Eclipseを使用している場合は、Eclipseを閉じてからもう一度開いてみてください。エラーはなくなります。

17
sofs1

つまり、そのメソッドに対して何かをオーバーライドしたり実装したりしていないので、オーバーライドアノテーションは必要ありません。したがって、単に削除する必要があります

@Override
3
PsyCode

定義したインターフェイスで、ItemArmorを使用して、山括弧内のジェネリック型をすべて削除します。

0
Rare Case

インターフェイスまたは基本クラスに保存されていないコンテンツがある可能性があります。これが注釈を削除する理由です@Overrideエラーを消去できます。

0
Wincent

Java Spring Frameworkで作業している場合は、IE <context:annotation-config/>ファイルにconfig.xmlと書き込んでアノテーションの使用を提供し、次のようなアノテーションを使用できるようにする必要があります。 @Override@Component@Valueなど.

パッケージが存在しない場合は、パッケージを右クリックして、構成用の.xml(つまりconfig.xml)ファイルを作成します。

その中に以下のコードを追加します。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- This allows annotations -->
    <context:annotation-config />


</beans>
0