我正在使用Java反射初始化不同类型的对象。所有这些对象都以相同的方式构造(即,我传入相同的值来构造它们)。如何检测类是否可注入
因此,我的喷油器通过查找每个字段,并做了很长的if/else语句如下所示:
if (Foo.class.isAssignableFrom(field.getType())
return new Foo(values);
else if (Bar.class.isAssignableFrom(field.getType())
return new Bar(values);
else if...//Continue over and over
我无法定义需要类有一个工厂的接口,因为工厂本质上是静态的。扩展抽象类也是如此。
有一些办法可以去除上面的if/else语句,所以我的注入类有没有关于需要注射(除了它可以与values
?
你看过Spring的源代码吗?这是一个现有的开源项目已经解决的问题,您可以分叉代码并重新使用它。 – mttdbrd
是的,我实际上使用Spring。我从来没有想过在这种情况下使用它。这实际上是我正在寻找的。发表一个答案,我会接受它@mttdbrd –
太棒了!谢谢。 – mttdbrd