【问题标题】:Minecraft Modding "Cannot instantiate the type" creatring CreativeTabMinecraft Modding“无法实例化类型”创建 CreativeTab
【发布时间】:2016-06-19 08:05:24
【问题描述】:

我昨天在编写 Minecraft Mod 时遇到了问题。

代码如下:

Main.java 类

package com.enricobilla.tempercraft;

import com.enricobilla.tempercraft.creativeTab.MyCreativeTab;

@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.MOD_VERSION)
public class TemperCraft {
    public static final MyCreativeTab tabTemperCraft = new MyCreativeTab("tabTemperCraft");
     ... other code ...
}

和 MyCreativeTab.java 类

package com.enricobilla.tempercraft.creativeTab;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;

public abstract class MyCreativeTab extends CreativeTabs {
    public MyCreativeTab(String label) {
        super(label);
        this.setBackgroundImageName("tab_tempercraft.png");
    }
}

所以,我的问题是 Eclipse 报告我“无法实例化类型 MyCreativeTab”,我在 Main.java 中写了 new MyCreativeTab("tabTemperCraft),我不知道为什么......

我已经在 Internet 上查看过,但任何人都有同样的问题。

有人可以帮帮我吗?谢谢!

【问题讨论】:

  • 抽象类不能被实例化。您需要做以下两件事之一:从您身上删除关键字 abstract MyCreativeTab 创建另一个扩展 MyCreativeTab 类并将其具体化的类。后者您可以在 TemperCraft 类中实例化。
  • @aribeiro 谢谢,你在 7 分钟内回答了!!

标签: java eclipse minecraft minecraft-forge


【解决方案1】:

这里的问题是MyCreativeTab 是一个抽象类型,不能实例化。 您需要删除类声明的 abstract 关键字或对其进行子类化。

查看Java Specification:的这句话

命名类可以被声明为抽象类(第 8.1.1.1 节),如果实现不完整,则必须声明为抽象类;这样的类不能被实例化,但可以被子类扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2020-02-02
    • 2021-11-15
    • 2021-10-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    相关资源
    最近更新 更多