我正在尝试制作一个执行器和线程的简单示例。
当我调用 newSingleThreadExecutor(new CustomThreadFactory)
时,一切顺利,但是当我使用 null 参数调用 newSingleThreadExecutor(null)
时,它给我“AWT-EventQueue-0” java.lang.NullPointerException。
为什么?
private Executor creador = Executors.newSingleThreadExecutor(null); //at this point fails, and with no parameters everything goes well
private QRExplorer explorer; // this class implements Runnable
//...
public MainView()
{
//...
explorer = new QRExplorer();
}
private void pCamaraMouseClicked(java.awt.event.MouseEvent evt)
{
creador.execute(explorer);
}
最佳答案
这里
Executors.newSingleThreadExecutor(null);
您正在尝试调用接受 ThreadFactory
参数的 newSingleThreadExecutor
重载。您将值 null
作为单个参数传递。
javadoc该方法指出
Throws:
NullPointerException
- ifthreadFactory
isnull
由于您传递的是 null
,因此调用将抛出 NullPointerException
。
关于java - Executors.newSingleThreadExecutor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656640/