Java Lombok

Beranda » Java » Java Lombok

Java Lombok merupakan library java yg digunakan untuk mengurangi penulisan boilerplate, seperti getter, setter, contructor, toString, hashCode dan lain sebagainya, dengan menggunakan anotasi. berikut beberapa anotasi Lombok yang sering digunakan.

Daftar Isi

@Getter

anotasi @Getter digunakan untuk membuat getter dari properties yang ada di class.

package com.codingduluaja.latihan;

import lombok.Getter;

@Getter
public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;
}

hasil compile class tersebut jika di decompile hasilnya seperti dibawah ini.

// Source code is decompiled from a .class file using FernFlower decompiler.
package com.codingduluaja.latihan;

public class Pekerja {
   private String NIP;
   private String nama;
   private String jabatan;

   public Pekerja() {
   }

   public String getNIP() {
      return this.NIP;
   }

   public String getNama() {
      return this.nama;
   }

   public String getJabatan() {
      return this.jabatan;
   }
}

@Setter

anotasi @Setter digunakan untuk membuat setter dari properties yg ada di class.

package com.codingduluaja.latihan;

import lombok.Setter;

@Setter
public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;
}

hasil compile class tersebut jika di decompile hasilnya seperti dibawah ini.

package com.codingduluaja.latihan;

public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;

	public void setNIP(String NIP) {
		this.NIP = NIP;
	}

	public void setNama(String nama) {
		this.nama = nama;
	}

	public void setJabatan(String jabatan) {
		this.jabatan = jabatan;
	}
}

@RequiredArgsConstructor

anotasi @RequiredArgsConstructor digunakan untuk membuat contructor dengan properties mandatory, atau ditandai dengan kata kunci final.

package com.codingduluaja.latihan;

import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;
	private final String tanggalLahir;
}

hasil compile class tersebut jika di decompile hasilnya seperti dibawah ini.

package com.codingduluaja.latihan;

public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;
	private final String tanggalLahir;

	public Pekerja(String tanggalLahir) {
		this.tanggalLahir = tanggalLahir;
	}
}

@AllArgsConstructor

anotasi @AllArgsConstructor digunakan untuk membuat contructor dengan semua properties class.

package com.codingduluaja.latihan;

import lombok.AllArgsConstructor;

@AllArgsConstructor
public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;
}

hasil compile class tersebut jika di decompile hasilnya seperti dibawah ini.

package com.codingduluaja.latihan;

public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;

	public Pekerja(String NIP, String nama, String jabatan) {
		this.NIP = NIP;
		this.nama = nama;
		this.jabatan = jabatan;
	}
}

@NoArgsConstructor

anotasi @NoArgsConstructor digunakan untuk membuat contructor kosong.

package com.codingduluaja.latihan;

import lombok.NoArgsConstructor;

@NoArgsConstructor
public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;

	public Pekerja(String nIP) {
		NIP = nIP;
	}
	
}

hasil compile class tersebut jika di decompile hasilnya seperti dibawah ini.

package com.codingduluaja.latihan;

public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;

	public Pekerja(String nIP) {
		this.NIP = nIP;
	}

	public Pekerja() {
	}
}

@ToString

anotasi @ToString digunakan untuk membuat metode toString().

package com.codingduluaja.latihan;

import lombok.ToString;

@ToString
public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;

}

hasil compile class tersebut jika di decompile hasilnya seperti dibawah ini.

package com.codingduluaja.latihan;

public class Pekerja {
   private String NIP;
   private String nama;
   private String jabatan;

   public String toString() {
      return "Pekerja(NIP=" + this.NIP + ", nama=" + this.nama + ", jabatan=" + this.jabatan + ")";
   }
}

@Data

anotasi terakhir yg paling sering digunakan adalah anotasi @Data, anotasi ini merupakan penggabungan dari anotasi, @Getter, @Setter, @ToString, @EqualsAndHashCode dan @RequiredArgsConstructor.

package com.codingduluaja.latihan;

import lombok.Data;

@Data
public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;

}

hasil compile class tersebut jika di decompile hasilnya seperti dibawah ini.

package com.codingduluaja.latihan;

public class Pekerja {
	private String NIP;
	private String nama;
	private String jabatan;

	public String getNIP() {
		return this.NIP;
	}

	public String getNama() {
		return this.nama;
	}

	public String getJabatan() {
		return this.jabatan;
	}

	public void setNIP(String NIP) {
		this.NIP = NIP;
	}

	public void setNama(String nama) {
		this.nama = nama;
	}

	public void setJabatan(String jabatan) {
		this.jabatan = jabatan;
	}

	public boolean equals(Object o) {
		if (o == this) {
			return true;
		} else if (!(o instanceof Pekerja)) {
			return false;
		} else {
			Pekerja other = (Pekerja) o;
			if (!other.canEqual(this)) {
				return false;
			} else {
				label47: {
					Object this$NIP = this.getNIP();
					Object other$NIP = other.getNIP();
					if (this$NIP == null) {
						if (other$NIP == null) {
							break label47;
						}
					} else if (this$NIP.equals(other$NIP)) {
						break label47;
					}

					return false;
				}

				Object this$nama = this.getNama();
				Object other$nama = other.getNama();
				if (this$nama == null) {
					if (other$nama != null) {
						return false;
					}
				} else if (!this$nama.equals(other$nama)) {
					return false;
				}

				Object this$jabatan = this.getJabatan();
				Object other$jabatan = other.getJabatan();
				if (this$jabatan == null) {
					if (other$jabatan != null) {
						return false;
					}
				} else if (!this$jabatan.equals(other$jabatan)) {
					return false;
				}

				return true;
			}
		}
	}

	protected boolean canEqual(Object other) {
		return other instanceof Pekerja;
	}

	public int hashCode() {
		int PRIME = true;
		int result = 1;
		Object $NIP = this.getNIP();
		int result = result * 59 + ($NIP == null ? 43 : $NIP.hashCode());
		Object $nama = this.getNama();
		result = result * 59 + ($nama == null ? 43 : $nama.hashCode());
		Object $jabatan = this.getJabatan();
		result = result * 59 + ($jabatan == null ? 43 : $jabatan.hashCode());
		return result;
	}

	public String toString() {
		String var10000 = this.getNIP();
		return "Pekerja(NIP=" + var10000 + ", nama=" + this.getNama() + ", jabatan=" + this.getJabatan() + ")";
	}
}

Kesimpulan

Anotasi Lombok memang dapat mempermudah dan mengurangi boilerplate dalam code yang kita ketik, namum perlu diperhatikan agar menggunakan anotasi sesuai dengan keperluan.

Kategori : Java
Oleh : budiyono, diterbitkan : disunting :