Java 为什么会出现这种情况<;对象>;是空的吗?
我的结构如下:Java 为什么会出现这种情况<;对象>;是空的吗?,java,postconstruct,Java,Postconstruct,我的结构如下: public class StringFactory { @Inject private Instance<StringFormatter> formatterInstances; @PostConstruct public void init() { for (AddressFormatter formatter : formatterInstances) { System.out.print
public class StringFactory {
@Inject
private Instance<StringFormatter> formatterInstances;
@PostConstruct
public void init() {
for (AddressFormatter formatter : formatterInstances) {
System.out.println("String formater: " + formatter);
}
}
}
StringFormatterWorkr
public class StringFormaterForKR implements StringFormatter {
@Override
public String createFormattedString(String x) {
return null;
}
默认字符串格式化程序
public class DefaultStringFormater implements StringFormatter {
@Override
public String createFormattedString(String x) {
return null;
}
试验
我不明白formatterInstances为什么为空?
我还看到,从施工后的信息从来没有打印出来
你对此有什么解释吗?为什么你希望它是非空的?我认为它会有:DefaultStringFormatter和StringFormatterWorkr为什么
formatterInstances
会是非空的?什么在初始化它?注释不是魔法。代码的哪一部分正在处理@Inject
注释?代码中没有注入任何内容,这就是为什么字段为null
。您已经编写了新的StringFactory()。注射发生在哪里?注射的是什么?
public class DefaultStringFormater implements StringFormatter {
@Override
public String createFormattedString(String x) {
return null;
}
public class Test() {
public static void main(String args[]) {
StringFactory factory = new StringFactory();
}
}