MySQL Java Bukkit插件-从数据库中选择
当我试图从MySQL获取消息时,我的Bukkit插件有问题。我有一个名为“ReportsLog”的表,它存储一个“SenderName”和一个“Message” 我认为Bukkit知识不是解决这个问题的必要条件,主要错误是:MySQL Java Bukkit插件-从数据库中选择,java,mysql,syntax,bukkit,Java,Mysql,Syntax,Bukkit,当我试图从MySQL获取消息时,我的Bukkit插件有问题。我有一个名为“ReportsLog”的表,它存储一个“SenderName”和一个“Message” 我认为Bukkit知识不是解决这个问题的必要条件,主要错误是: [01:44:19 ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'areport' in plugin Staff
[01:44:19 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'areport' in plugin StaffTrainer v1.0
这就是错误:
[01:44:19 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'areport' in plugin StaffTrainer v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spi
got.jar:git-Spigot-f928e7a-e91aed8]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:14
1) ~[spigot.jar:git-Spigot-f928e7a-e91aed8]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServe
r.java:642) ~[spigot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerCon
nection.java:1135) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java
:970) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java
:45) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java
:1) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:1
3) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
?:1.8.0_45]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [spig
ot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:7
18) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:3
67) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:6
57) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java
:560) [spigot.jar:git-Spigot-f928e7a-e91aed8]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
Caused by: java.lang.NullPointerException
at code.katzuno.StaffTrainer.onCommand(StaffTrainer.java:80) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spi
got.jar:git-Spigot-f928e7a-e91aed8]
... 15 more
String ReportSender = args[0];
String mesaj = mess.getMessage(ReportSender);
这是第80行的代码(带有错误的代码):
最有可能的错误是在函数getMessage中。这是函数getMessage()的代码
args变量为null。它表示空指针异常来自该行,并且您尝试访问值的唯一位置是来自该数组。您需要事先进行如下检查:
if (args != null) {
...
}
以防止异常发生。它是由空指针引起的。。。找出哪个值为null,然后深入挖掘是什么导致该值为null的。字段
StaffTrainer.mysql
是否已初始化?这是我在关于mysql(mysql.java类)的主类(StaffTrainer)中得到的:公共静态mysql;我没有另一个初始值设定项。所以这个值从未被赋值,所以它是空的?发现问题了吗?我应该如何初始化类似“StaffTrainer.mysql”的东西。还是应该初始化“公共静态MySQL;”?如果我应该初始化mysql变量,我可以用什么来初始化该类型的变量?
if (args != null) {
...
}