Jam*_*bbs 1 java entity class bukkit
我有以下代码(使用minecraft的bukkit EnittyType Enum来自: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());
}
}
Run Code Online (Sandbox Code Playgroud)
我希望Entity通过Class<? extends Entity>这种方式来检查这个特定类是否是Monster类的实例.
我尝试过c.newInstance(),但有很多例外,例如:
java.lang.InstantiationException: org.bukkit.entity.Egg
at java.lang.Class.newInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
这样我可以检查这个特定类是否是Monster类的实例.
...
我正在尝试使用如下的instanceof:if (c instanceof Monster)
c是一个Class<? extends Entity>,它与一个实例不同Entity.
您根本不需要构造Entity实例来完成此操作.用途Class#isAssignableFrom():
if (Monster.class.isAssignableFrom(c) {
System.out.println("Monster --> " + e.getEntityClass());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1936 次 |
| 最近记录: |