-1
다음을 실행하려고하지만 userService.getName()에서 null 포인터가 있습니다. 실없이 그것은 잘 작동하지만, 실로 그것은 당신은 당신의
Scheduler
생성자상의@Inject
를 사용하지만 수동으로 인스턴스화 널 포인터 예외실행 예외 : 호출 가능 메서드 호출 중
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 인스턴스화했습니다 –