我有一个看起来像这样的简单类:
class Foo{
float value;
Foo(float value){
value = value;
}
Foo(Bar b){
value = b.value;
}
}
我尝试创建类的实例,将float传递给构造函数:
Foo f = new Foo(100f);
它给了我一个错误:
Static Error: No constructor in Foo matches this invocation
Arguments: (float)
Expected return type: Foo
Candidate signatures:
Foo(float)
Foo(Bar)
无效的参数调用Foo(float)
,但允许调用:Foo(Float)
?什么?
实际导致此错误的是什么?
答案 0 :(得分:1)
我认为你应该同时构建构造函数和类public
。此外,如果您的范围中有另一个名称相同的变量(有一个名为this.value
的参数和一个名为value
的字段),则需要使用value
链接到您的本地字段。 / p>
结果将是:
public class Foo {
float value;
public Foo(float value) {
this.value = value;
}
public Foo(Bar b){
value = b.value;
}
}