如何用默认构造函数使用注释初始化字段
问题描述:
guys!你能告诉我,我们如何使用注解初始化字段? 例如: 我们有几个自定义类:Foo;酒吧。在Main类中,我们输入了两个字段如何用默认构造函数使用注释初始化字段
public class Main {
Foo foo;
Bar bar;
}
我想创建注释,这有助于初始化这些字段。最终结果我想看到这样的事情:
@Initialize
Foo foo;
@Initialize
Bar bar;
答
注释本身什么都不做。它只是一个可以使用反射来检索的元数据。因此,您可以实现一种接收类的工厂,使用默认构造函数创建它的实例,发现用注释标注的类的字段并设置字段的值。
不过我倒是为下列问题开始实施前:(?从JNDI可能是从某种存储库的可能)
- 哪里会这个工厂找到
foo
和bar
值 - 你真的需要这个吗?可能初始化使用构造函数更好。在这种情况下,你可以标记所有字段
final
,所以你的对象将是不可变的,有很多优点 - 你可能重新发明轮子?看看Spring框架。它可以满足你的要求,而且更重要。
这些注释究竟应该做什么?如果你想要一个固定的初始化值,你可以直接赋值。如果你想计算一个,把它放在构造函数中。如果你想要一些外部注射,你需要有一个DI提供者。 –