gpt4 book ai didi

java - 使用注释的构造函数注入(inject)

转载 作者:行者123 更新时间:2023-11-30 02:10:39 26 4
gpt4 key购买 nike

为什么当我 Autowiring 无参数构造函数时我的代码失败并出现以下错误,但当我仅 Autowiring 单个参数构造函数时它运行良好

线程“main”java.lang.NullPointerException中出现异常

这是 TennisCoach 类代码片段

@Component // this is bean id 
public class TennisCoach implements Coach {

public TennisCoach(FortuneService thefortuneservice) {
System.out.println(" inside 1 arg constructter");
fortuneservice = thefortuneservice;
}


@Autowired
public TennisCoach() {
System.out.println(" inside 0 arg constructter");

}
}

Coach theCoach = myapp.getBean("tennisCoach", Coach.class);
System.out.println(theCoach.getDailyFortunes());

幕后工作进展如何?

最佳答案

如果类中只有一个构造函数,则不需要使用@Autowired——Spring 知道只有一个选项,因此它使用该选项。但是你有两个构造函数,所以你需要告诉 Spring 使用哪一个。

但是,当您调用默认构造函数时,您期望会发生什么?您根本没有在任何地方设置变量,但您正在尝试从中读取变量。

关于java - 使用注释的构造函数注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50189668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com