Can I use @Named and @Inject in Java SE application? Something like this:
import javax.inject.Inject;
public class ThreadA implements Runnable {
@Inject
private MySignal sharedSignal;
@Override
public void run() {
while (!sharedSignal.hasDataToProcess()) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("Finished");
};
}
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
@Named("sharedSignal")
@ApplicationScoped
public class MySignal {
protected boolean hasDataToProcess = false;
public synchronized boolean hasDataToProcess() {
return this.hasDataToProcess;
}
public synchronized void setHasDataToProcess(boolean hasData) {
this.hasDataToProcess = hasData;
}
}
public class Main {
public static void main(String[] args) {
Thread a = new Thread(new ThreadA());
a.start();
}
}
I get this error:
Exception in thread "Thread-0" java.lang.NullPointerException at ThreadA.run(ThreadA.java:11) at java.lang.Thread.run(Unknown Source)