#java #constructor #default-constructor
#java #конструктор #по умолчанию-конструктор
Вопрос:
Я продолжаю получать ошибку Java The constructor LocalDate (int, int, int) is not visible
. Я пытаюсь создать частное поле и инициализировать его.
Как мне сделать это правильно:
import java.time.LocalDate;
public class Registration {
private registrationDate = new LocalDate.of (0,0,0);
}
...
Комментарии:
1. Это без
new
статического методаof
, выдающего новый объект:= LocalDate.of (0,0,0);
2. Избавьтесь от
new
и укажите тип для переменной.
Ответ №1:
Вероятно, самая большая проблема заключается в том, что вам не следует использовать new
ключевое слово, потому что вы не вызываете LocalDate
конструктор. LocalDate.of()
— это просто метод, который вы бы вызвали, как и любой другой.
Вы также должны указать, какой тип registrationDate
есть. Итак, попробуйте:
private LocalDate registrationDate = LocalDate.of(0,0,0);
Ответ №2:
Попробуйте это.
private LocalDate registrationDate = LocalDate.of(0,0,0);
Там были две ошибки, первая заключается в том, что вы не объявили тип переменной registrationDate
, а вторая заключается в том, что new
это здесь не требуется, поскольку вы используете статический метод LocalDate
класса.
Ответ №3:
LocalDate.of
является ли то, что вы вызываете в Java, статическим методом. Статические методы не требуют от вас создания новой версии класса. Вместо этого все, что им нужно для работы, передается в метод через его параметры. Чтобы исправить это, удалите new
ключевое слово.
Вы также не устанавливаете тип объекта registrationDate. В отличие от других языков, таких как Kotlin, которые могут определять тип, в Java вам нужно точно указать, что это за тип. Чтобы сделать это, вам нужно поместить LocalDate между private
и registrationDate
.
Собрав все это вместе, это должно выглядеть так:
private LocalDate registrationDate = LocalDate.of(0,0,0);