Java错误

Java错误,java,Java,这里需要帮助。我总是会遇到这样的错误: ERROR! THREAD NAME: New I/O worker #2 java.lang.NullPointerException at com.rs.game.player.content.DungeoneeringShop.open(DungeoneeringShop.java:12) at com.rs.game.player.dialogues.DungTutor.run(DungTutor.java:36) at

这里需要帮助。我总是会遇到这样的错误:

ERROR! THREAD NAME: New I/O  worker #2
java.lang.NullPointerException
    at com.rs.game.player.content.DungeoneeringShop.open(DungeoneeringShop.java:12)
    at com.rs.game.player.dialogues.DungTutor.run(DungTutor.java:36)
    at com.rs.game.player.DialogueManager.continueDialogue(DialogueManager.java:31)
    at com.rs.net.decoders.WorldPacketsDecoder.processPackets(WorldPacketsDecoder.java:1130)
    at com.rs.net.decoders.WorldPacketsDecoder.decode(WorldPacketsDecoder.java:268)
    at com.rs.net.ServerChannelHandler.messageReceived(ServerChannelHandler.java:98)
    at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:95)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:558)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
    at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:91)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:373)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:247)
    at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
这是我的班级:

package com.rs.game.player.content;

import com.rs.game.player.Player;

public class DungeoneeringShop {

    private static final int INTERFACE_ID = 72;
    public static Player player;

    public static void open() {
        for(int i = 69; i < 73; i++) 
            player.getPackets().sendHideIComponent(INTERFACE_ID, i, false);
        player.getInterfaceManager().sendInterface(INTERFACE_ID);
    }
}
你还没有初始化玩家。所以它是空的

就像

null.getPackets()  --------------> NullPointerException
所以分辨率是在使用like之前初始化它

public static Player player = new Player(); // at declaration level

你还没有初始化玩家。所以它是空的

就像

null.getPackets()  --------------> NullPointerException
所以分辨率是在使用like之前初始化它

public static Player player = new Player(); // at declaration level


您需要实例化

public static Player player;

在访问它之前。

您需要实例化

public static Player player;

在访问它之前。

您必须实例化变量player。在您的示例中,player为null。 例如,如果您有一个无参数构造函数:

public static Player player = new Player();

您必须实例化变量player。在您的示例中,player为null。 例如,如果您有一个无参数构造函数:

public static Player player = new Player();

因为你还没有初始化玩家对象。应该是:

package com.rs.game.player.content;

import com.rs.game.player.Player;

public class DungeoneeringShop {

private static final int INTERFACE_ID = 72;
public static Player player;

public static void open() {
    player = new Player(); // or some other constructor of this class
    for(int i = 69; i < 73; i++) 
        player.getPackets().sendHideIComponent(INTERFACE_ID, i, false);
        player.getInterfaceManager().sendInterface(INTERFACE_ID);
    }
}
我认为你是Java世界的新手。你正在学习游戏开发电子书。在此之前,您应该更多地学习基本Java


希望有此帮助:

因为您尚未初始化player对象。应该是:

package com.rs.game.player.content;

import com.rs.game.player.Player;

public class DungeoneeringShop {

private static final int INTERFACE_ID = 72;
public static Player player;

public static void open() {
    player = new Player(); // or some other constructor of this class
    for(int i = 69; i < 73; i++) 
        player.getPackets().sendHideIComponent(INTERFACE_ID, i, false);
        player.getInterfaceManager().sendInterface(INTERFACE_ID);
    }
}
我认为你是Java世界的新手。你正在学习游戏开发电子书。在此之前,您应该更多地学习基本Java


希望有帮助:

如果你叫open,请确保玩家已初始化…如果你叫open,请确保玩家已初始化…嗯,我基本上是新来者。谢谢你给我打电话!:我基本上是新来的。谢谢你给我打电话!:D@user2229998不客气。请接受正确答案,以帮助阅读此问题的其他人:-@user222998不客气。请接受正确答案,以帮助阅读此问题的其他人:-