Java说我的论点无效,但我不这么认为

时间:2016-01-05 13:43:36

标签: java

我有一个看起来像这样的简单类:

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)?什么?

实际导致此错误的是什么?

1 个答案:

答案 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;
}
}