La méthode doit remplacer ou de mettre en œuvre un supertype méthode
Je fais un custom armure, et dans ma classe d'armure, j'obtiens cette erreur:
La méthode getArmorTexture(ItemStack, d'une Entité, int, int) de type ArmorE doit remplacer ou de mettre en œuvre un supertype méthode
Pourquoi j'obtiens cette erreur?
Voici mon code:
Classe D'Armure:
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;
}
}
Partie de la Classe Principale:
//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");
Ce supertype méthode est-il censé remplacer/mettre en œuvre? Si aucun, supprimer
@Override
. Si, à la correct la signature telle qu'elle correspond exactement.
OriginalL'auteur GriffinMite | 2014-09-29
Vous devez vous connecter pour publier un commentaire.
De remplacer une méthode de la signature doit correspondre à celui de la super classe. Remplacer
avec
Vous devez ouvrir le ItemArmor de classe et de regarder les types de paramètres et le type de retour de la méthode que vous écrasez. Copier et coller fonctionne généralement mieux pour s'assurer qu'il accepte les mêmes variables. Dans ce cas, votre version est en prenant un int pour son "type" paramètre au lieu d'une chaîne de caractères.
Habituellement, vous pouvez vous référer à la documentation javadoc - le lien a disparu mort ici, mais le code corrigé reste 🙂
merci, j'ai ajouté un "live" de lien
OriginalL'auteur Reimeus
Si vous utilisez Eclipse, essayez de fermer et l'ouvrir à nouveau. L'erreur disparaît.
OriginalL'auteur sofs1
Cela signifie que vous n'avez pas besoin de le remplacer annotation puisque vous n'êtes pas de la substitution ou de la mise en œuvre de quelque chose à cette méthode. Par conséquent, vous devez simplement supprimer
Je viens de recevoir ce sur Eclipse et cela a bien fonctionné pour moi. Merci beaucoup.
OriginalL'auteur PsyCode
Dans votre interface définie ItemArmor supprimer un type générique dans les crochets.
OriginalL'auteur Rare Case
Si vous travaillez sur Java, Spring Framework, vous devez fournir l'aide d'annotations par écrit
<context:annotation-config/>
dans votre je.econfig.xml
fichier afin d'être en mesure d'utiliser des Annotations telles que@Override
,@Component
,@Value
et etc.Clic-droit sur votre colis et d'en créer une .xml(j'.e config.xml fichier de configuration s'il n'existe pas.
et Ajoutez le code suivant à l'intérieur.
OriginalL'auteur Niamatullah Bakhshi