java.lang.NullPointerException 错误请 [重复]

java.lang.NullPointerException Errors PLEASE [duplicate]

提问人:Iyanrgn Iyanrgn 提问时间:4/7/2020 最后编辑:NicolasIyanrgn Iyanrgn 更新时间:4/7/2020 访问量:95

问:

我真的是编码新手,我一直在尝试制作这个 Minecraft 插件。每次启动它时,我都会收到此错误。https://i.imgur.com/33lBHQr.png

这是“启动器。NitroLauncher.onEnable“类。

package launcher;

import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.plugin.java.JavaPlugin;

public class NitroLauncher extends JavaPlugin
{
    private NitroLaunch launch;
    private static NitroLauncher plugin;
    private ReflectiveOperationException e;

    public <Plugin> void onEnable() {
        NitroLauncher.plugin = this;
        try {
            this.launch = (NitroLaunch)Class.forName("me.R1J.nitro.NitroPlugin").asSubclass(NitroLaunch.class).newInstance();
            @SuppressWarnings("unchecked")
            Plugin plugin2 = (Plugin)this;
            new BukkitRunnable() {
                public void run() {
                    NitroLauncher.this.launch.launch(NitroLauncher.this);
                }
            }.runTask((org.bukkit.plugin.Plugin) plugin2);
        }
        catch (InstantiationException | IllegalAccessException | ClassNotFoundException ex2) {
            String str = e.getMessage(); ;
            ;
            e = new ReflectiveOperationException(str);;
            e.printStackTrace();
        }
    }

    public Object getValue(Object pojo) throws IllegalArgumentException
    {
      try {
        return _method.invoke(pojo, (Object[]) null);
      } catch (IllegalAccessException | InvocationTargetException e) {
        throw new IllegalArgumentException("Failed to getValue() with method "
            +getFullName()+": "+e.getMessage(), e);
      }
    }

    public void onDisable() {
        if (this.launch != null) {
            this.launch.shutdown();
        }
        this.launch = null;
        NitroLauncher.plugin = null;
    }

    public static NitroLauncher getPlugin() {
        return NitroLauncher.plugin;
    }
}

任何帮助将不胜感激!

谢谢

java nullpointerexception nullreferenceexception 我的世界

评论

0赞 Scaramouche 4/7/2020
错误显示在第 26 行,但这只是子句中的消息,这意味着实际错误发生在第 15 行和第 24 行之间。检查您在那里使用的任何元素是否返回 null,一目了然,主要嫌疑人可能是catchtryClass.forName("me.R1J.nitro.NitroPlugin")
0赞 Nicolas 4/7/2020
第 26 行周围有一堆不需要的分号。尝试删除它们并检查会发生什么。

答:

1赞 ivan volkov 4/7/2020 #1

第 11 行:

private ReflectiveOperationException e;

您尝试在初始化之前对其调用 getMessage()。 在第 26-28 行:

String str = e.getMessage(); ;
        ;
        e = new ReflectiveOperationException(str);;

由于变量“e”尚未设置为任何值,因此它默认为值“null”。

当您尝试使用为 null 的变量调用函数 on 之类的操作时,会导致 NullPointerException。

总是仔细检查你的代码是否有这样的愚蠢错误,因为 99% 的时间最终都会破坏你的程序。:)

评论

2赞 Nicolas 4/7/2020
您可以添加一点,此时 ( ) ,他们正在寻找错误变量,该变量定义为e.getMessage()ex2