簡體   English   中英

java類 <? extends Entity> 如何獲得實體實例

[英]java Class<? extends Entity> how to get instance of Entity

我有以下代碼(使用Minecraft的bukkit EnittyType枚舉來自: http ://jd.bukkit.org/rb/doxygen/d6/d7b/EntityType_8java_source.html):

    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());

        }

    }

我想從Class<? extends Entity>獲得Entity Class<? extends Entity> Class<? extends Entity> ,這樣我就可以檢查這個特定的類是否是Monster類的實例。

我嘗試做c.newInstance() ,但是有很多異常,例如:

java.lang.InstantiationException: org.bukkit.entity.Egg
at java.lang.Class.newInstance(Unknown Source)

這樣我可以檢查這個特定的類是否是Monster類的實例。
...
我正在嘗試使用instanceof,例如: if (c instanceof Monster)

cClass<? extends Entity> Class<? extends Entity> ,它與Entity的實例不同。

您根本不需要構造一個Entity實例即可完成此操作。 使用Class#isAssignableFrom()

if (Monster.class.isAssignableFrom(c) {
    System.out.println("Monster --> " + e.getEntityClass());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM