-1
私は次のように実行しようとしていますが、私はuserService.getName()でnullポインタに直面しています。スレッドのない は、それが正常に動作しているが、スレッドとそれはあなたの
Scheduler
コンストラクタに@Inject
を使用していますが、まだそれを手動でインスタンス化し、nullポインタ例外実行例外:呼び出し可能メソッドから呼び出し中
public class Sheduler implements Callable{
private UserService userService;
private SchedulerExecuterService scheduler=Executers.newScheduledThreadpool(2);
@Inject
public Sheduler (UserService userService){
this.userService = userService;
}
Future future = scheduler.submit(new Callable(){
@override
public String call() throws Exception{
**return userService.getName();//NUll pointer Exception**
}
)}
public void startpool(){
final Runnable beeper = new Runnable(){
public void run(){
UserService userService = new UserService();
Sheduler scd=new Sheduler (UserService userService);
future.get();
}
}
scheduleAtFixedRate(beeper,5,5,TimeUnit.SECONDS);
}
public static void main(){
Sheduler scduler=new Sheduler();
scduler.startpool();
}
あなたのuserServiceはインスタンス化されていません – Stultuske
'Sheduler'インスタンスをどのように作成しますか? – luk2302
申し訳ありませんこのコードを忘れました UserService userService = new UserService(); @stultuske私はそれをインスタンス化しました –