提问人:Iyanrgn Iyanrgn 提问时间:4/7/2020 最后编辑:NicolasIyanrgn Iyanrgn 更新时间:4/7/2020 访问量:95
java.lang.NullPointerException 错误请 [重复]
java.lang.NullPointerException Errors PLEASE [duplicate]
问:
我真的是编码新手,我一直在尝试制作这个 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;
}
}
任何帮助将不胜感激!
谢谢
答:
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
评论
catch
try
Class.forName("me.R1J.nitro.NitroPlugin")