【发布时间】:2014-11-30 16:52:30
【问题描述】:
我想在应用程序范围的 bean 中公开一堆 JSF 中的通用静态方法。现在我的代码如下:
@ApplicationScoped
@Named
public class StaticUtils{
public static void bla(){ ... }
public static void blabla(MyParam param){ ... }
public static void bla2(){ ... }
public static void blabla2(MyParam param){ ... }
...
}
问题是我的 bean 增长太多了,我有一些彼此不需要的方法。因此,我正在考虑按功能将它们组合在一起并将它们提取到其他类中。之后,通过组合,我将在上述 ApplicationScopedBean 中拥有每个类的实例,并通过包装方法访问我分组的静态方法。
public class A{
public static void bla(){ ... }
public static void blabla(MyParam param){ ... }
...
}
public class B{
public static void bla2(){ ... }
public static void blabla2(MyParam param){ ... }
...
}
@ApplicationScoped
@Named
public class StaticUtils{
public static void bla(){ A.bla(); }
public static void blabla(MyParam param){ A.blabla(param); }
public static void bla2(){ B.bla2(); }
public static void blabla2(MyParam param){ B.blabla2(param); }
}
由于多重继承在 java 中直接不可用,我既不想对所有生成的 bean 使用多级继承也不想使用 @ApplicationScoped,有没有更好/更干净/更简洁的方法来做到这一点?我可以自动从类中的内部对象公开所有公共方法,这样我可以使其代码或多或少像这样短吗?
@ApplicationScoped
@Named
public class StaticUtils{
private A a;
private B b;
...
}
有什么想法吗?提前致谢
【问题讨论】:
标签: java static-methods