我有以下代碼(使用的Minecraft的bukkit EnittyType枚舉來自:http://jd.bukkit.org/rb/doxygen/d6/d7b/EntityType_8java_source.html):java Class <?擴展實體>如何讓實體
for (EntityType e : EntityType.values())
{
System.out.println("Loading entity: " + e);
Class<? extends Entity> c = e.getEntityClass();
Entity en = c; // <-- This does not work and throws an error
if (en instanceof Monster)
{
System.out.println("Monster --> " + e.getEntityClass());
}
}
我想要得到的Entity
從Class<? extends Entity>
這樣我可以檢查這個特定的類是Monster類的一個實例。
我試着做c.newInstance()
,卻得到了許多例外,如:
java.lang.InstantiationException: org.bukkit.entity.Egg
at java.lang.Class.newInstance(Unknown Source)
你想在這裏完成什麼?你是說你想要確定'e'的運行時類型嗎?爲什麼不使用'instanceof'? – chrylis
我嘗試使用instanceof,例如: 'if(c instanceof Monster)'',但得到了錯誤: '不兼容的條件操作數類型Class和怪物' –
Jameshobbs