我需要获取链表中的所有元素。我通过调用缓冲区中的get()
方法( CharacterBuffer )来完成此操作。
但是每当我尝试获取元素时,我都会得到nullPointerException。我不知道如何解决这个问题。
public class Reader extends Thread {
private GUIMutex gui;
private CharacterBuffer buffer;
public Reader(GUIMutex gui, CharacterBuffer buffer) {
this.gui = gui;
this.buffer = buffer;
}
public void run() {
String data = "test";
while (true) {
try {
System.out.println(buffer.get());
gui.setReaderText(data + "\n");
Thread.sleep(1500);
} catch (InterruptedException e) {
}
}
}
}
public class CharacterBuffer {
private char ch;
private LinkedList buffer = new LinkedList();
private boolean filled = true;
public void put(char ch) {
buffer.addLast(ch);
buffer.removeFirst();
}
public Object get() throws InterruptedException {
while (buffer.isEmpty()) {
wait();
}
// return buffer.removeFirst();
return buffer.getFirst();
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
首先,你不能在Linked List中使用char它只接受Wrapper类型。在你的put方法中,你可以同时添加和删除字符。您的链接列表中不会保留任何值。