gpt4 book ai didi

java类如何获取实体实例

转载 作者:行者123 更新时间:2023-11-29 07:54:01 27 4
gpt4 key购买 nike

我有以下代码(使用来自 http://jd.bukkit.org/rb/doxygen/d6/d7b/EntityType_8java_source.html 的 minecraft 的 bukkit EnittyType 枚举):

    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() , 但有很多异常(exception),例如:

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

最佳答案

that way I can check if this particular class is an instanceof a Monster class.
...
I am trying to use instanceof such as: if (c instanceof Monster)

cClass<? extends Entity> ,这与 Entity 的实例不同.

你不需要构造一个 Entity实例来做到这一点。使用 Class#isAssignableFrom() :

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

关于java类<?扩展实体>如何获取实体实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com