У меня есть простой класс, который выглядит примерно так:Java говорит, что у меня есть недопустимый аргумент, но я не думаю, что так
class Foo{
float value;
Foo(float value){
value = value;
}
Foo(Bar b){
value = b.value;
}
}
Я пытаюсь создать экземпляр класса, передавая поплавок конструктор:
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)
, но llowed invocations: Foo(Float)
? Какие?
В чем причина этой ошибки?
Если ява думает так, я бы сказал, это должно быть правильным. Вы вызываете этот конструктор из другого пакета? Причина состоит в том, что отсутствующее ключевое слово 'public' или' private' в вашем объявлении contructor делает его закрытым. – SomeJavaGuy
Ну, 'значение = значение;' должно быть 'this.value = value;' –
странно, похоже, это работает для меня, какую версию java вы используете? – dubes