Niektóre klasy Java muszą mieć właściwości prywatne z publicznym programem pobierającym i ustawiającym, aby działały poprawnie. Na przykład potrzebne są komponenty bean JSF i jednostki JPA. Gdyby nie te biblioteki, prawdopodobnie istnieją pewne właściwości, które nie powinny mieć żadnych pobierających i zdecydowanie nie ustawiać. Również puste konstruktory są często zniechęcane do użycia przez niestandardowy kod. Na przykład:Metoda zignorowana, niezaakceptowana
@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;
}
}
W tej klasie metoda setId nigdy nie powinna być wywoływana przez ręczny kod. Ta metoda nie jest jednak przestarzała, więc adnotacja @Deprecated byłaby niepoprawna.
Czy jest inny sposób niż @Deprecated, aby powiedzieć, że metoda nie powinna być używana?
To pytanie nie jest związane z JSF i JPA. Warto jednak wspomnieć o tych frameworkach. –
Twój przykład nie jest zbyt dobry. Dlaczego miałbyś kiedykolwiek zniechęcić do używania setera w tym przypadku? Jest to obiekt encji, który może potencjalnie przechowywać wszystkie rodzaje kombinacji danych, oczywiście, że chcesz móc ustawić jego wartości. – Perception
Nie chcesz zmieniać jego unikalnego identyfikatora po ustawieniu go na wartość initialize. –