java - 无意义的 NullPointerException/变量决定不存在

标签 java nullpointerexception null bukkit

我已经为 Spigot 开发一个插件几天了,并且已经在 StackOverflow 上发表了几篇关于它的文章。然而,这一个是最令人困惑的。

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 {
    private Vector vector;
    Location lastpos;
    @Override
    public void onUse(Player player, Entity projectile) {
        vector = player.getLocation().getDirection().normalize().clone();
        System.out.println(vector);
        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) {
//      if (lastpos == null || vector == null) {
//          return;
//      }
        System.out.println(vector);
        if (entity.getLocation().getBlock().getType().equals(Material.AIR)) {
            entity.setVelocity(vector);
        }
        lastpos = entity.getLocation();
    }
}

现在控制台输出:

[11:49:13 INFO]: null
[11:49:13 INFO]: null
[11:49:13 INFO]: null
[11:49:14 INFO]: 0.18347871628032447,-0.275177341220671,-0.9437229421556131
[11:49:14 INFO]: null
[11:49:14 INFO]: null
[11:49:14 INFO]: null
[11:49:14 INFO]: null
[11:49:14 INFO]: null
[11:49:14 INFO]: null
..And so on

如您所见,变量“vector”是一个私有(private) Vector 对象。但出于某种原因,它似乎不太喜欢存在,并且似乎只是有时不为空。谁能解释一下为什么会发生这种情况?

最佳答案

事实证明,同一个对象有 2 个实例,只不过其中一个实例调用了 onUse(),而另一个实例则没有调用。我现在解决了这个问题。

关于java - 无意义的 NullPointerException/变量决定不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956997/

相关文章:

java - 当您在休息调用中公开接口(interface)RequestBody时,如何将json反序列化为java对象?

java - 消除多个 Tr 标签以获得正确的计数

java - 最小生成树抛出 NullPointerException

ios - 如何在 Swift 中使用 guard 使用 nil 处理 JSON 响应

javascript - 使用 JavaScript 检查空 XML 数据

java - 无法使用 JUnit5 控制台启动器运行测试

java - 我该如何编写这个测试用例?

java - 什么是NullPointerException,我该如何解决?

java - 如何在android中的 ListView 中膨胀 GridView ?

c# - 消除组合框中的空条目