【发布时间】:2018-09-18 23:52:24
【问题描述】:
我想知道如何使静态方法与依赖注入一起工作。
例如:
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 为空。
我正在研究如何使这项工作正常工作,因为对于该类的每个静态方法,DI 都会有点烦人。
【问题讨论】:
-
为什么要做
showMessage()static?这看起来像一个实例方法一样完美。 -
@ElliottFrisch 因为它会在许多不同的类上被多次调用,所以如果它是静态的会更容易。
-
您必须向
showMessage添加一个参数,如showMessage(Main main)或使main变量static。还要考虑到您的showMessage依赖于PrintStream,即System.out,因此您可能也希望对其进行参数化。
标签: java dependency-injection static-methods