Некоторые классы Java должны иметь приватные свойства с открытым геттером и сеттером, чтобы нормально функционировать. Например, им нужны JSF-бобы и объекты JPA. Если бы не эти библиотеки, возможно, есть некоторые свойства, которые не должны иметь никаких геттеров и определенно не устанавливаться. Также пустые конструкторы часто обескуражены для использования пользовательским кодом. НапримерОтклоненный метод, не устаревший
@Entity
public class MyEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
public MyEntity() {}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
}
В этом классе метод setId никогда не должен вызываться с помощью ручного кода. Этот метод не является устаревшим, поэтому аннотация @Deprecated будет неправильной.
Есть ли другой способ, чем @ Не рекомендуется использовать метод, который нельзя использовать?
Этот вопрос не связан с JSF и JPA. Тем не менее, стоит упомянуть эти рамки. –
Ваш пример не очень хорош. Почему бы вам когда-либо препятствовать использованию сеттера в этом случае? Объект объекта, который может потенциально хранить всевозможные комбинации данных, вы, конечно же, хотите установить его значения. – Perception
Вы не хотите изменять свой уникальный идентификатор после его инициализации. –