一、遇到的问题:
在java开发中,往往会遇到一些工具类,他们的方法都是静态的(为了调用方便),但是,就会遇到这样的问题,有些静态方法里需要引用一些其他类的方法,这些也必须是静态的,但是,往往我们引用的这些是接口,没有办法在接口的方法上定义static,直接注入静态的类在使用时又会报空指针的问题,因此此问题由此而来。
二、情况说明:
- 需要引用的是一个interface,类里面是一些需要通过多态实现的方法,无法定义为static;
- 需要引用的方法为一个静态的方法
三、解决措施:
-
首先,在方法中将此接口定义为static变量(此处无法直接使用@Autowired注解进行注入,因为static方法和@Autowired的执行顺序问题会导致空指针问题);
-
给变量赋值,此处使用autowired注入
特别注意的是:在调用的类上必须添加注解@Component