2015-06-05 3 views
0

Я пытаюсь сделать тривиальный пример исполнителей и потоков.Executors.newSingleThreadExecutor

Когда я звоню newSingleThreadExecutor(new CustomThreadFactory), все идет хорошо, но когда я вызываю 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); 
} 
+4

Почтовый код – SexmanTaco

+0

Где код заканчивается на строке, которую вы называете newSingleThreadExecutor() или другой? –

+0

Я только что добавил код. спасибо, что ответили –

ответ

3

Здесь

Executors.newSingleThreadExecutor(null); 

вы пытаетесь вызвать newSingleThreadExecutor перегрузку, которая принимает аргумент ThreadFactory. Вы передаете значение null в качестве единственного аргумента.

javadoc этого метода утверждает

Броски:

  • NullPointerException - если threadFactory является null

Поскольку вы передаете null, вызов будет бросать NullPointerException ,

+0

благодарит вас за терпение. –

Смежные вопросы