2016-03-05 55 views
2

昨天編程一個Minecraft Mod時,我遇到了一個問題。Minecraft Modding「Can not instantiate type」creatring CreativeTab

下面是代碼:

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),我不知道爲什麼......

我已經在互聯網上看過,但任何人都有同樣的問題。

有人可以幫我嗎?謝謝!

+1

抽象類不能被實例化。你需要做以下兩件事之一:從你的MyCreativeTab類中移除關鍵字'abstract' *或者*創建另一個類來擴展MyCreativeTab類並使其具體化。後者你可以在你的'TemperCraft'類中實例化。 – aribeiro

+0

@aribeiro謝謝,你在7分鐘內回答! – EnricoBilla

回答

2

這裏的問題是,MyCreativeTab是一個抽象類型,不能實例化。 您需要刪除類聲明的abstract關鍵字或其子類。

見的Java Specification:

命名類可以聲明抽象的這句話(§8.1.1.1),並且必須聲明爲抽象的,如果它未完全落實;這樣的類不能實例化,但可以通過子類擴展。