我收到以下错误:
错误:类CommonCtx中的构造函数Commonctx无法应用于
给定类型;
必需:org.springframework.core.env.Environment
找到:没有参数原因:实际和正式参数列表的不同
长度。
使用的代码:
@Component
@PropertySource("file:${input.file.loc}")
public class CommonCtx implements IContext {
private String tempDir;
@Autowired
public CommonCtx(Environment inputProperties) {
tempDir = inputProperties.getProperty("temp.dir");
...
}
@Component
@Conditional(cond1.class)
@PropertySource("file:${input.file.loc}")
public class NewCCtx extends CommonCtx implements NewCContext{
private String productName;
/**
* @param inputProperties
*/
@Autowired
public NewCCtx(Environment inputProperties) {
this.productName = inputProperties.getProperty("product.name");
}
最佳答案
在此构造函数中:
public NewCCtx(Environment inputProperties) {
this.productName = inputProperties.getProperty("product.name");
}
您应该使用适当的参数显式调用超级构造函数(
CommonCtx
):public NewCCtx(Environment inputProperties) {
super(inputProperties);
this.productName = inputProperties.getProperty("product.name");
}
由于您的父类没有零参数构造函数,因此这是必需的。