快捷搜索: 王者荣耀 脱发

@Autowired 导致空指针报错 解决方式

报错

Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: java.lang.NullPointerException

我的B类中,对A类型的变量加上了注解@Autowired,查到的解决方法大概有两种方式,通常可以由上下文获取类进行解决,于是我在B中由工具获取到A的类,并使用A的方法,还是空指针错误。

解决方法:

由于B类是在main 中以示例的方式声明的,那么由B的实例b去使用A的方法一定是错误的。

通过工具类在main中获取B的方式,就不会报错了。

Java变量的初始化顺序为:

静态变量或静态语句块–>实例变量或初始化语句块–>构造方法–>@Autowired

工具类

经验分享 程序员 微信小程序 职场和发展