Rumah >Java >javaTutorial >Lombok Unleashed: Meningkatkan Kecekapan Java dengan Getters, Setters, Constructors, Builders dan Banyak Lagi

Lombok Unleashed: Meningkatkan Kecekapan Java dengan Getters, Setters, Constructors, Builders dan Banyak Lagi

王林
王林asal
2024-07-16 17:46:50557semak imbas

Lombok Unleashed: Elevating Java Efficiency with Getters, Setters, Constructors, Builders, and More

Pengenalan kepada Projek Lombok

Project Lombok ialah perpustakaan Java popular yang bertujuan untuk mengurangkan kod boilerplate dan meningkatkan produktiviti pengekod dengan menjimatkan banyak masa dan tenaga mereka dengan menyediakan anotasi untuk menjana kod Java biasa secara automatik semasa masa penyusunan

Apakah Projek Lombok?

Projek Lombok menangani verbositi Java dengan menawarkan anotasi yang menghapuskan keperluan untuk menulis binaan kod berulang secara manual seperti kaedah getter, setter, constructor, equals, hashCode dan toString. Dengan menganotasi medan atau kelas dengan anotasi Lombok, pengekod boleh mengarahkan pengkompil untuk menjana kaedah ini secara automatik, mengurangkan jumlah kod boilerplate dan menjadikan kelas Java lebih padat dan boleh dibaca.

Mengapa kami menggunakan Projek Lombok?

Menggunakan Project Lombok di Jawa menawarkan beberapa faedah menarik yang menyumbang kepada peningkatan produktiviti, kualiti kod dan kebolehselenggaraan.
Berikut ialah beberapa sebab untuk memilih Project Lombok.
Ia mengurangkan "Kod Boilerplate".
Ia juga meningkatkan kebolehgunaan semula dan kebolehbacaan kod.
Ia sangat mudah untuk dilaksanakan dan tidak mempunyai sebarang kerumitan.
Bersepadu dengan mudah dengan "IDE".

Bagaimana untuk melaksanakan Lombok di Jawa pada projek Maven

Kebanyakan projek kami adalah berdasarkan Maven. Jadi, kami hanya perlu menambah kebergantungan "Projek Lombok" pada fail "Pom.xml" kami yang terdapat dalam projek kami.

Pergi ke repositori maven dan salin repositori Lombok Maven dari sana, tambahkan kebergantungan lombok terkini dalam "Pom.xml" anda dan simpannya, kemudian muat semula projek.

Ciri Getters, Setter Project Lombok di Jawa

Di Jawa, setakat ini amalan yang paling biasa ialah menambah pengambil dan penetap menggunakan corak "Kacang Jawa". Kebanyakan IDE menjana kod secara automatik untuk corak ini.

Mari kita lihat kod memahami pendekatan ini dengan mencipta pengambil dan penetap dengan bantuan “Objek Data” dan “Kilang Data” :

Objek Data tanpa Lombok

Walaupun pendekatan JavaBeans tradisional untuk mencipta kaedah getter dan setter secara manual menyelesaikan tugas, tetapi ia mempunyai beberapa kelemahan dan batasan yang menjadikannya kurang diingini, terutamanya dalam persekitaran pembangunan Java moden semua, kelemahannya banyak diliputi di Lombok.

Jadi, daripada ini, kami lebih suka menggunakan corak Lombok. Berikut ialah cara ia boleh dilaksanakan dalam Java :

Ciri-ciri pembina Projek Lombok di Jawa

Pembina tanpa Lombok kita perlu menentukan secara manual setiap pembina, yang boleh membosankan dan terdedah kepada ralat, terutamanya untuk kelas dengan banyak medan. Selain itu, kita perlu mengendalikan pelbagai konfigurasi pembina, yang boleh meningkatkan kerumitan kod.

Lombok memudahkan proses ini dengan anotasi @NoArgsConstructor, @AllArgsConstructor dan @RequiredArgsConstructor.

Pembina tanpa Lombok

Menggunakan anotasi Lombok mengurangkan jumlah kod boilerplate yang perlu ditulis secara manual. Dengan Lombok, anda hanya menganotasi kelas dan medan, dan pembina dijana secara automatik berdasarkan kriteria yang ditentukan. Ini membawa kepada kod yang lebih bersih dan ringkas.

Pelbagai ciri dan sifat Lombok

  1. Generasi ToString
  • Dalam Java, toString() ialah kaedah yang ditakrifkan dalam kelas java.lang.Object, yang berfungsi untuk mengembalikan perwakilan rentetan objek. Kaedah toString() diwarisi oleh semua kelas dalam Java dan pelaksanaan lalainya dalam kelas Object mengembalikan rentetan yang mengandungi nama kelas diikuti dengan simbol “at” (@) dan perwakilan heksadesimal kod cincang objek.
  • Walau bagaimanapun, pelaksanaan lalai toString() yang disediakan oleh Object mungkin tidak selalu bermakna atau berguna untuk kelas tertentu. Oleh itu, amalan biasa bagi pembangun untuk mengatasi kaedah toString() dalam kelas mereka sendiri untuk menyediakan perwakilan rentetan tersuai yang menerangkan keadaan atau sifat objek dengan lebih baik.
  • Seperti contoh kami, kelas Profil mungkin mengatasi toString() untuk mengembalikan rentetan yang mengandungi firstName, LastName, penetapan, maklumat umur. Mengatasi toString() membolehkan anda mencetak atau mencatat maklumat objek dengan mudah dalam format yang boleh dibaca manusia, yang boleh membantu untuk penyahpepijatan, pengelogan atau memaparkan maklumat kepada pengguna.
  • Tanpa menggunakan anotasi ToString Lombok, kami perlu melaksanakan kaedah toString() secara manual dalam kelas Profil. Kami menggabungkan medan FirstName, LastName, jawatan dan umur untuk mencipta perwakilan rentetan yang dikehendaki. Pelaksanaan manual ini mencapai hasil yang sama seperti anotasi @ToString Lombok.

Tanpa menggunakan ciri Anotasi ToString

  • Anotasi @ToString menjana kaedah toString() untuk kelas, memberikan perwakilan rentetan medannya. Tidak perlu menulis sendiri dan mengekalkannya kerana kami memperkayakan model data kami.
  • Dengan anotasi ini, memanggil toString() pada contoh profil akan mengembalikan rentetan yang mengandungi nilai medannya.
  • @Exclude anotasi boleh berguna untuk setiap pelbagai anotasi yang berbeza seperti Getters, Setters, ToString, EqualAndHashCode, dll. Marilah kita memahaminya bersama-sama dengan contoh anotasi @ToString.
  • Dengan menganotasi medan penetapan dengan @ToString(exclude = {“designation”})
  • Lombok mengecualikannya daripada dimasukkan dalam kaedah toString() yang dijana oleh @ToString. Ini boleh berguna jika anda ingin mengelak daripada memaparkan medan tertentu dalam perwakilan rentetan objek.

2. Penjanaan EqualAndHashCode

  • Dalam Java, equals() dan hashCode() ialah dua kaedah yang biasa digunakan untuk melaksanakan kesamaan objek dan penjanaan kod cincang, masing-masing.
  • Kaedah
  • equals() : Kaedah equals() digunakan untuk membandingkan dua objek untuk kesamaan. Secara lalai, kaedah equals() yang disediakan oleh kelas Object membandingkan rujukan objek, bermakna ia kembali benar hanya jika kedua-dua objek yang dibandingkan adalah contoh yang sama dalam ingatan. Walau bagaimanapun, selalunya perlu untuk mengatasi kaedah equals() dalam kelas tersuai untuk mentakrifkan tanggapan yang bermakna tentang kesamaan berdasarkan atribut objek.
  • Kaedah
  • hashCode() : Kaedah hashCode() digunakan untuk menjana nilai kod cincang untuk objek. Kod cincang ialah nilai integer yang mewakili keadaan objek dan biasanya digunakan dalam struktur data berasaskan cincang seperti jadual cincang. Kaedah hashCode() adalah penting kerana ia membenarkan objek disimpan dan diambil dengan cekap dalam koleksi berasaskan hash.
  • Dalam contoh kami, kami telah melaksanakan dan mengatasi kaedah equals() secara manual untuk membandingkan medan dua objek Profil untuk kesamaan dan kaedah hashCode() untuk menjana kod cincang berdasarkan medan.
  • Kami menggunakan kaedah Objects.equals() daripada kelas java.util.Objects untuk membandingkan medan untuk kesamaan dan kaedah Objects.hash() untuk menjana kod cincang.

Tanpa menggunakan ciri Anotasi EqualAndHashCode

  • Anotasi @EqualsAndHashCode menjana kaedah equals() dan hashCode() berdasarkan medan kelas.
  • Dengan anotasi ini, Lombok menjana kaedah equals() dan hashCode() menggunakan semua medan kelas.
  • Ini menghapuskan keperluan untuk pelaksanaan manual kaedah ini, mengurangkan kod boilerplate dan meningkatkan kebolehselenggaraan kod.

3. Anotasi Data
Tanpa menggunakan anotasi @data, kami perlu melaksanakan getter, setter dan ciri Pembina secara manual ke dalam kod kami.

  • Tanpa menggunakan ciri Anotasi Data

  • Anotasi @data ialah pintasan mudah yang menggabungkan @Getter, @setter, @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode dan banyak lagi anotasi.

  • Menggunakan @data, Lombok menjana kaedah ini secara automatik untuk kami berdasarkan medan yang diisytiharkan dalam kelas. Ini dengan ketara mengurangkan jumlah kod boilerplate yang kami perlukan untuk menulis dan menyelenggara, menjadikan kod kami lebih ringkas dan boleh dibaca.

  1. Corak Pembina
  • Berbalik kepada contoh Profil kami, membina contoh baharu memerlukan menggunakan pembina dengan kiraan empat argumen yang berpotensi banyak, tugas yang menjadi sukar apabila kami memperkenalkan atribut tambahan kepada kelas.
  • Syukurlah, Lombok menyediakan penyelesaian yang mantap dengan ciri @buildernya, yang memudahkan penggunaan Corak Pembina untuk mencipta kejadian baharu. Mari sepadukan ciri ini ke dalam kelas Profil kami.

pakej org.example.dataobjects;

import lombok.*;

@Getter
@setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@ToString(exclude = {"designation"})
@EqualsAndHashCode
@pembina
@data
Profil kelas awam {
String peribadi FirstName;
Nama akhir String peribadi;
penetapan Rentetan peribadi;
umur int peribadi;

utama kekosongan statik awam(String[] args) {

// Mencipta tika Profil menggunakan pembina
Profil profil = Profile.builder()
.firstName("Bahagian")
.Nama Akhir("Kathrotiya")
.designation("Jurutera Automasi QA")
.umur(23)
.build();
}
}

Delombok

  • Delombok ialah alat yang disediakan oleh Project Lombok yang membalikkan kesan anotasi Lombok, pada asasnya "menghilangkan" kod anda. Ia membolehkan anda menukar kod sumber Java yang mengandungi anotasi Lombok kepada kod Java biasa dengan mengembangkan anotasi dan menggantikannya dengan kod boilerplate sepadan yang akan dihasilkannya.
  • Tujuan utama Delombok adalah untuk memudahkan keserasian dan kesalingoperasian dengan persekitaran atau alatan yang tidak menyokong anotasi Lombok secara langsung. Contohnya, jika anda perlu berkongsi kod anda dengan pembangun yang tidak memasang Lombok dalam persekitaran pembangunan mereka, atau jika anda ingin menganalisis atau memfaktorkan semula kod beranotasi Lombok menggunakan alat yang tidak memahami anotasi Lombok, anda boleh menggunakan Delombok untuk menukar kod ke dalam bentuk yang boleh difahami dan boleh digunakan dalam konteks tersebut.
  • Delombok boleh digunakan melalui baris arahan atau disepadukan ke dalam alat binaan seperti Maven atau Gradle. Apabila anda menjalankan Delombok pada kod sumber anda, ia memproses fail Java, mengembangkan anotasi Lombok dan menjana fail Java baharu tanpa sebarang anotasi Lombok. Kod yang terhasil secara fungsinya setara dengan kod asal tetapi tanpa sebarang pergantungan pada Lombok.
  • Secara keseluruhan, Delombok ialah alat berguna yang disediakan oleh Project Lombok yang meningkatkan kesalingoperasian dan kebolehselenggaraan pangkalan kod menggunakan anotasi Lombok, membolehkan pembangun memanfaatkan faedah Lombok sambil memastikan keserasian dengan pelbagai persekitaran dan alatan pembangunan.

Kesimpulan

Walaupun siaran ini menyerlahkan ciri yang saya dapati paling berfaedah, Lombok menawarkan pelbagai fungsi dan penyesuaian tambahan.
Dokumentasi Lombok merupakan sumber yang tidak ternilai, memberikan penjelasan dan contoh yang mendalam untuk setiap anotasi. Jika anda tertarik dengan siaran ini, saya menggesa anda untuk mendalami dokumentasi Lombok untuk mendedahkan lebih banyak kemungkinan.
Lebih-lebih lagi, tapak projek ini menawarkan panduan komprehensif untuk menyepadukan Lombok merentasi pelbagai persekitaran pengaturcaraan. Sama ada anda menggunakan Eclipse, NetBeans, IntelliJ atau lain-lain, yakinlah bahawa Lombok menyepadukan dengan lancar dengan aliran kerja anda. Sebagai seseorang yang kerap bertukar antara IDE, saya boleh membuktikan kepelbagaian dan kebolehpercayaan Lombok merentas semua platform.
Secara keseluruhan, Project Lombok menawarkan set ciri yang komprehensif yang menyelaraskan pembangunan Java, mengurangkan verbositi kod dan mempromosikan amalan terbaik.
Project Lombok menawarkan set ciri komprehensif yang menyelaraskan ujian Java, mengurangkan verbositi kod dan mempromosikan amalan terbaik. Dengan menggabungkan pembina Lombok dan pembina Lombok, penguji boleh memudahkan lagi kod mereka dan meningkatkan kebolehselenggaraan.

Atas ialah kandungan terperinci Lombok Unleashed: Meningkatkan Kecekapan Java dengan Getters, Setters, Constructors, Builders dan Banyak Lagi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn