- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个相当复杂的代码,我想在其中包含线程。为了更好地理解,我稍微玩了一下线程,得到了 NullPointerException
我不知道为什么它在那里:
这是我的主要方法和使用的两个类:
public static void main (String args[]) {
listInteger list = new listInteger();
for(int i = 0; i < 10; i++) {
list.add(i);
}
printList printy = new printList(list);
Thread no1 = new Thread(printy);
Thread no2 = new Thread(printy);
no1.start();
no2.start();
}
public class printList implements Runnable {
public listInteger list;
public printList(listInteger list) {
this.list = list;
}
@Override
public void run() {
while(list.size() > 0) {
System.out.println(list.getFirst());
list.removeFirst();
}
}
}
public class listInteger {
public LinkedList<Integer> list;
public Integer getFirst() {
return list.getFirst();
}
public void removeFirst() {
list.removeFirst();
}
public int size() {
return list.size();
}
public void add(Integer e) {
list.add(e);
}
}
我以为它只会打印出数字。我想看看线程何时终止,并使用同步来查看输出的差异。该列表应该向我显示线程正在做什么,但我什至没有到达这一点。什么时候指向null?我对 .add() 做错了什么吗?(我现在正在研究我的实际代码很多小时。如果它很明显,请原谅我,我只是没有看到它。)
最佳答案
问题出在你的 listInteger 类中。
public LinkedList<Integer> list;
永远不会初始化,因此每次与它交互时都会出现 NullPointerException。这基本上可以解决你的问题。
public LinkedList<Integer> list = new LinkedList<>();
此外,您使用列表的方式也被破坏了。我建议您阅读有关 java 并发、Java 内存模型等方面的内容。
此外,阅读有关 Java 命名约定的内容对您也很有帮助。
关于java - 打印 IntegerList - NullPointerException(线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54381405/
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 4 年前。 我正在编写一个相当复杂的代码,我
所以在类里面我们遵循实验室手册的说明。我能够完成第一步和第二步,我只需要第三步的帮助。 实验室手册说明: 向 IntegerList 类添加一个方法 void removeFirst(int new
我正在尝试在 Jasper Reports 中使用参数,但我在使用列表时遇到了一些困难,更准确地说是整数列表。 我有一个 Postgres 过程,它接收一个整数数组作为参数,就像这个查询 select
我是一名优秀的程序员,十分优秀!