如何使用注释使用默认构造函数初始化字段

时间:2016-06-08 12:29:33

标签: java reflection annotations

家伙!你能告诉我,我们如何使用注释来初始化字段? 例如: 我们有很少的自定义类:Foo;酒吧。在Main类中,我们输入了两个字段

public class Main {
    Foo foo;
    Bar bar;
}

我想创建注释,这有助于初始化这些字段。在最终结果中,我想看到这样的事情:

@Initialize
Foo foo;
@Initialize
Bar bar;

1 个答案:

答案 0 :(得分:1)

注释本身什么都不做。它只是一个可以使用反射检索的元数据。因此,您可以实现一种接收类的工厂,使用默认构造函数创建其实例,发现使用注释注释的类的字段并设置字段的值。

然而,在开始实施之前,我会提出以下问题:

  1. 这个工厂将在哪里找到foobar的值(可能来自某种存储库?可能来自JNDI?)
  2. 你真的需要这个吗?使用构造函数初始化可能更好。在这种情况下,您可以标记所有字段final,因此您的对象将是不可变的,具有很多优势
  3. 你可能正在重新发明轮子吗?看看Spring框架。它做你想要的,甚至更多。
相关问题