Java 类型不匹配:无法从元素类型对象转换为EnderPearl
好吧,我有个问题。。。标题基本上解释了错误。但我不知道如何修复它。如果你能帮助我,我会很高兴的Java 类型不匹配:无法从元素类型对象转换为EnderPearl,java,minecraft,bukkit,type-mismatch,Java,Minecraft,Bukkit,Type Mismatch,好吧,我有个问题。。。标题基本上解释了错误。但我不知道如何修复它。如果你能帮助我,我会很高兴的 if (cause == PlayerTeleportEvent.TeleportCause.ENDER_PEARL) { ArrayList pearls = (ArrayList)this.ender.get(e.getPlayer()); if (pearls != null) {
if (cause == PlayerTeleportEvent.TeleportCause.ENDER_PEARL)
{
ArrayList pearls = (ArrayList)this.ender.get(e.getPlayer());
if (pearls != null)
{
Location to = e.getTo();
for (EnderPearl p : pearls) //**Error is here. ("pearls")**
{
if ((p != null) && (p.getLocation().distanceSquared(to) < 2.0D))
{
pearls.remove(p);
e.setCancelled(true);
return;
}
}
}
}
if(cause==PlayerTeleportEvent.TeleportCause.ENDER\u PEARL)
{
arraylistpearls=(ArrayList)this.ender.get(e.getPlayer());
如果(珍珠!=null)
{
位置to=e.getTo();
对于(EnderPearl p:pearls)/**错误在这里。(“pearls”)**
{
如果((p!=null)&(p.getLocation().distanceSquared(to)<2.0D))
{
珍珠。去除(p);
e、 setCancelled(真);
返回;
}
}
}
}
在代码中使用原始类型,最好使用以下代码定义数组列表:
ArrayList<EnderPearl> pearls = (ArrayList)this.ender.get(e.getPlayer());
arraylistpearls=(ArrayList)this.ender.get(e.getPlayer());
这样你就不必担心演员或任何事情了 解决方案:不要使用原始类型。arraylist包含对象。你需要向EnderPearl施法,除非真正的收藏类型是
ArrayList
ArrayList pearls?耶哈哈,我没意识到。谢谢各位。我按照你说的做了修复:改为:ArrayList pearls=blablabla