Java 在不同类中创建对象的线程
我正在这里学习线程。我有一个演示类,它打印第n个斐波那契数。不,我正在尝试在另一个类threadtest1中为这个演示对象创建一个线程并执行它。但我一直得到以下错误Java 在不同类中创建对象的线程,java,multithreading,Java,Multithreading,我正在这里学习线程。我有一个演示类,它打印第n个斐波那契数。不,我正在尝试在另一个类threadtest1中为这个演示对象创建一个线程并执行它。但我一直得到以下错误 Starting thread :Thread[Fibonacci thread,5,main] Exception in thread "main" java.lang.NullPointerException at threadtest1.startThread(threadtest1.java:21) at t
Starting thread :Thread[Fibonacci thread,5,main]
Exception in thread "main" java.lang.NullPointerException
at threadtest1.startThread(threadtest1.java:21)
at threadtest1.main(threadtest1.java:27)
有人能帮忙吗?
演示
改变
到
因为您应该初始化字段,而不是创建局部变量
这样做将防止
d.startDemo(t);
d
由于未初始化这是一个字段阴影问题。啊,它正在工作,这是一个愚蠢的错误。不知道我怎么会错过它。非常感谢。
class threadtest1
{
private Thread t;
private demo d;
private int l;
public threadtest1(int l)
{
this.l = l;
demo d = new demo(l);
}
public threadtest1(int l1, int l2)
{
this.l = (int)Math.max(l1,l2);
demo d = new demo(l);
}
public void startThread()
{
t = new Thread(d,"Fibonacci thread");
System.out.println("Starting thread :" +t);
d.startDemo(t);
}
public static void main(String args[])
{
threadtest1 t1 = new threadtest1(5);
t1.startThread();
}
}
demo d = new demo(l);
d = new demo(l);
d.startDemo(t);