Giriş
Şu satırı dahil ederiz.
Şu satırı dahil ederiz.
import lombok.Getter;
Ne İçin Kullanılır
Sınıfın en üstüne veya sınıf üye alanlarına yazılabilir. Sınıfa getter metodları ekler.
Sınıf Seviyesinde Kullanırsak
Açıklaması şöyle.You can also put a @Getter and/or @Setter annotation on a class. In that case, it's as if you annotate all the non-static fields in that class with the annotation.
Üretilen Getter Metod İsimleri Nasıldır?
Üretilen kod şöyle. Eğer alan primitive ise isX() şeklindedir. Eğer Object is getX() şeklindedir. Alan ismi "isX" şeklinde ise getter() da aynı isimledir. Açıklaması şöyle
For boolean fields that start with is immediately followed by a title-case letter, nothing is prefixed to generate the getter name.
Çıktı şöyle
@Getter
private boolean isGood; // => isGood()
@Getter
private boolean good; // => isGood()
@Getter
private Boolean isGood; // => getIsGood()
Örnek - Sınıf SeviyesindeŞöyle yaparız. getEmpId(), getfirstName() gibi metodlar eklenir.
@Getter
@Setter
public class MyObject {
public Long empID;
public String firstName;
public String lastName;
...
}
Örnek - - Üye Alan SeviyesindeEğer üye alanlara eklemek istersek şöyle yaparız.
public enum MyEnum {
@Getter
private int member1;
@Getter
private int member2;
}
Ancak şöyle daha kolay@Getter
public enum MyEnum {
private int member1;
private int member2;
}
Örnek - Enum Kullanımıİstenirse enum'a da eklenebilir. Bu durumda getVariable() metodu üretilir.
@Getter
public enum Test {
TEST;
private int variable;
}
lazy AlanıÖrnek
Şöyle yaparız
public class Employee {
...
@Getter(lazy = true)
private final BigDecimal salary = calculateSalary();
}
Açıklaması şöyle. Yani sadece employee.getSalary() çağrısı yapılınca calculateSalary() çalıştırılırThis annotation only provides a convenient way to calculate the salary only once and cache its value for future reference.
...
By calculating the salary only when it is first accessed, instead of in the constructor, the code becomes more flexible and efficient.
Üretilen kod şuna benzer
public class Employee {
private final AtomicReference<BigDecimal> cachedSalary = new AtomicReference<>();
public BigDecimal getSalary() {
var cachedSalary = this.cachedSalary.get();
if(cachedSalary != null) {
return cachedSalary;
}
var salary = calculateSalary()
this.cachedSalary.set(salary);
return salary;
}
}
Hiç yorum yok:
Yorum Gönder