java代码中的未知错误

时间:2013-07-29 18:38:31

标签: java for-loop

好的,所以早些时候我发布了this thread,询问如何从for循环中创建多个值。 过了一会儿我遇到了一个问题,我不知道如何解决也不知道为什么会发生这种情况。 这是我的代码:

        for(int x = 0; x < con.length; x++) 
    {
        maxS[x] = main.getConfig().getString("areas." + con[x] + ".max").split(", ").toString();
        minS[x] = main.getConfig().getString("areas." + con[x] + ".min").split(", ").toString();
        event.getPlayer().sendMessage("1");
        for(int y = 0; y < maxS.length; y++) 
        {
            maxV[y] = new Vector(Integer.parseInt(maxS[y]), Integer.parseInt(maxS[y+1]), Integer.parseInt(maxS[y+2]));
            minV[y] = new Vector(Integer.parseInt(minS[y]), Integer.parseInt(minS[y+1]), Integer.parseInt(minS[y+2]));

            event.getPlayer().sendMessage("2");
        }
    }

错误消息:

  2013-07-29 20:32:12 [SEVERE] Could not pass event PlayerMoveEvent to FactionPlay v1.6.2
    org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:227)
at net.minecraft.server.v1_6_R2.Packet10Flying.handle(SourceFile:136)
at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296)
at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116)
at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590)
at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226)
at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NumberFormatException: For input string: "    [Ljava.lang.String;@af7327"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at me.BlueJelly.FactionPlay_SP.PlayerListener.onPlayerMove(PlayerListener.java:191)
at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
... 14 more

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

根据您的错误消息判断,您对Integer.parseInt的调用实际上并没有获得可以解析为int的字符串。

相反,他们获得了字符串" [Ljava.lang.String;@af7327"

你应该重新评估你是如何获得这些字符串的


以下行看起来不对。

maxS[x] = main.getConfig().getString("areas." + con[x] + ".max").split(", ").toString();

这可能只是我的c#体验,但我通常希望.split()调用返回string而不是单string的数组。

在不查看其余代码的情况下很难分辨,但我希望看到一行看起来更像以下

maxS = main.getConfig().getString("areas." + con[x] + ".max").split(", ");