返回空值的Java第二继承
我有三门课:返回空值的Java第二继承,java,spring,Java,Spring,我有三门课: public abstract class Provider{ @Autowired private ModelService modelService; protected void foo(String name) throws Exception { modelService.doSomething(); //line 10 } } @Service public class MyProvider extends Pro
public abstract class Provider{
@Autowired
private ModelService modelService;
protected void foo(String name) throws Exception {
modelService.doSomething(); //line 10
}
}
@Service
public class MyProvider extends Provider {
// calling foo on the parent
foo("mayName");
}
public class MyOAuthProvider extends MyProvider {
// calling foo on the parent-->parrent
foo("mayName");
}
当我从MyProvider调用foo时,函数会工作
当我从MyOAuthProvider调用foo时,函数在NullPointerException上失败,因为modelService为null
跟踪:
Exception in thread "main" java.lang.NullPointerException
at my.Provider.foo(Provider.java:10)
at my.Nain.main(Nain.java:7)
任何人都可以帮助我理解为什么会发生这种情况,以及我如何解决我的问题用@service注释MyAuthProvider将解决您的问题您可以显示空指针异常的堆栈跟踪吗?显示使用MyAuthProvider的类。值得注意的是,这是一个很好的例子,说明了为什么构造函数注入被认为是比字段注入更好的实践。我将跟踪添加到问题中,请提供一个。我用@service注释MyAuthProvider,但仍然遇到同样的问题:如何创建MyAuthProvider?如果使用“新建”创建,自动布线将无法工作。为了让autowire正常工作,您需要spring使用@Service和componentScan为您创建autowire