私はカスタムの鎧を作っています、そして私の鎧クラスで私はこのエラーを得ています:
タイプ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");
メソッドをオーバーライドするには、署名が super class の署名と一致する必要があります。交換する
public String getArmorTexture(ItemStack stack, Entity entity, int slot, int type) {
と
public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) {
Eclipseを使用している場合は、Eclipseを閉じてからもう一度開いてみてください。エラーはなくなります。
つまり、そのメソッドに対して何かをオーバーライドしたり実装したりしていないので、オーバーライドアノテーションは必要ありません。したがって、単に削除する必要があります
@Override
定義したインターフェイスで、ItemArmorを使用して、山括弧内のジェネリック型をすべて削除します。
インターフェイスまたは基本クラスに保存されていないコンテンツがある可能性があります。これが注釈を削除する理由です@Override
エラーを消去できます。
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>