【发布时间】:2020-07-17 10:52:04
【问题描述】:
我对其中包含静态字段的组件 bean 有疑问。
我对静态字段进行了 DI 以实现静态方法,以便其他类可以在没有 DI 的情况下调用该方法
这是不自然的东西吗?只是有人对此有疑问,所以..
-编辑
我附上了一些显示我想要的代码
@Component
public class CompWithStatic {
private static InjectedObj injectedObj ;
@Autowired
CompWithStatic(InjectedObj injectedObj ) {
CompWithStatic.injectedObj = injectedObj;
}
public static String doStaticA(String str){
//do something with injectedObj
return str + " method A ";
}
public static String doStaticB(String str){
//do something with injectedObj
return str + " method B ";
}
}
public enum EnumType {
ENUMA(str-> CompWithStatic.doStaticA(str)),
ENUMB(str-> CompWithStatic.doStaticB(str));
private Function<String,String> expression;
EnumType(Function expression) {
this.expression = expression;
}
public String doExpress(String str){
return expression.apply(str);
}
}
我的意图是每个 Enum 案例都有动态方法 所以你可以像这样使用它
EnumType.ENUMA.doExpress("str");
如果不自然,请告诉我!
【问题讨论】:
-
文字超级不清楚..
-
对不起,我只是用我的手机添加了这个问题。当我可以使用计算机时,我会用代码编辑这个问题
标签: spring dependency-injection static code-injection