gpt4 book ai didi

java - 没有堆栈跟踪的 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 07:24:51 24 4
gpt4 key购买 nike

出于某种原因,Java 给了我一个 NullPointerException 。我知道这通常很容易修复,但在这种情况下,我不明白为什么它首先会抛出它。为什么我想不通?嗯,因为它没有堆栈跟踪!这是我的代码:

package redempt.divinity.ability.modifier.modifiers;

import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.util.Vector;
import redempt.divinity.ability.AbilityType;
import redempt.divinity.ability.modifier.ProjectileModifier;

public class NoGravity extends ProjectileModifier {
Vector vector;
Location lastpos;
@Override
public void onUse(Player player, Entity projectile) {
vector = player.getLocation().getDirection().normalize();
lastpos = projectile.getLocation();
}
@Override
public String getName() {
return "No gravity";
}
@Override
public Material getRepresentation() {
return Material.FEATHER;
}
@Override
public AbilityType getType() {
return AbilityType.PROJECTILE;
}
@Override
public void onHit(EntityDamageByEntityEvent event) {
}
@Override
public void onTick(Entity entity) {
try {
if (lastpos == null) {
lastpos = entity.getLocation();
}
if (entity.getLocation().getBlock().getType().equals(Material.AIR)) {
entity.setVelocity(vector);
}
lastpos = entity.getLocation();
} catch (Exception e) {
System.out.println("Exception");
e.printStackTrace();
}
}
}

onTick()每个刻度都会被调用,onUse()在开始调用 onTick() 之前被调用,这是控制台输出:

[11:26:52 INFO]: Exception
[11:26:52 WARN]: java.lang.NullPointerException
... this repeats often

那么这到底意味着什么,为什么会发生,以及如何解决它?

最佳答案

可能是 JVM 问题,将此参数传递给它以获得完整的堆栈跟踪:

-XX:-OmitStackTraceInFastThrow

现在,NPE是因为那里有东西 null然后你尝试从中调用一个方法。潜在候选人是 entity自从你打电话entity.getLocation() ,然后entity.getLocation() ,因为您调用entity.getLocation().getBlock() ,甚至是调用 entity.getLocation().getBlock().getType() 时得到的对象不仅要检查它们lastpos .

关于java - 没有堆栈跟踪的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956738/

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