我想知道如何使静态方法与依赖注入一起工作。
例如:
public class Util {
Main main;
public Util(Main main) { this.main = main }
public static void showMessage() {
System.out.println("message = " + main.messageMethod());
}
}
这是我想要做的,但是如果我这样从其他类(如Util.showMessage();
)中调用方法时,它告诉我main为null。
我正在研究如何正确地执行此操作,因为对该类上的每个静态方法的DI都会有点烦人。
答案 0 :(得分:0)
您需要将Main传递给静态方法:
public static void showMessage(final Main main) {
System.out.println("message = " + main.messageMethod());
}
编写实用程序类的最佳实践:
在将这些规则应用于实用程序类后,它将看起来像:
public final class Util {
private Util();
public static void showMessage(final Main main) {
System.out.println("message = " + main.messageMethod());
}
}
此类是最终的(无法扩展),具有私有构造函数(无法实例化或注入),无状态(无成员,如果方法showMessage不会改变主变量的状态,则是线程安全的)。