当字节数组不为null时,字节数组抛出空指针异常

时间:2015-07-10 21:55:21

标签: java arrays byte bytearray

我正在制作一个简单的程序,我正在尝试添加多人游戏。我目前有字节数组(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(未知来源)

1 个答案:

答案 0 :(得分:1)

我将client变量重新分配给Client类的新实例,如下所示:

client = new Client(/*insert parameters here*/);

NullPointerException不是byte[] client变量。