我正在制作一个简单的程序,我正在尝试添加多人游戏。我目前有字节数组(byte[]
)用于发送到服务器和客户端的数据。当我在屏幕上移动播放器后发送一个字节数组时,我得到一个java.lang.NullPointerException
,我知道它不是空的。我甚至尝试使用if
语句检查它是否为空,而eclipse表示它是死代码。
if (data == null) {
System.out.println("Data is null!");
}
这是我的代码,它给了我例外。
byte[] data = new byte[10];
byte packet00 = (byte) ((byte) x/8);
byte packet01 = (byte) ((byte) x/8);
byte packet02 = (byte) ((byte) x/8);
byte packet03 = (byte) ((byte) x/8);
byte packet04 = (byte) ((byte) x/8);
byte packet05 = (byte) ((byte) x/8);
byte packet06 = (byte) ((byte) x/8);
byte packet07 = (byte) ((byte) x/8);
byte type = 39;
data[0] = 2;
data[1] = packet00;
data[2] = packet01;
data[3] = packet02;
data[4] = packet03;
data[5] = packet04;
data[6] = packet05;
data[7] = packet06;
data[8] = packet07;
data[9] = type;
client.sendData(data);
x
是按键更改的int
,来自客户端的方法sendData
需要byte[]
。
我找不到任何东西可以帮我解决这个问题,我想知道我是否遗漏了某些内容和/或修复此内容。
这是stacktrace的一部分:
线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException
在com.dripgames.main.Main $ 1.keyPressed(Main.java:132)
在java.awt.Component.processKeyEvent(未知来源)
答案 0 :(得分:1)
我将client
变量重新分配给Client
类的新实例,如下所示:
client = new Client(/*insert parameters here*/);
NullPointerException
不是byte[]
client
变量。