Как мне объявить объект как поле в Java?

#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);