Bagian pertama. Saya menulis secara singkat tentang anotasi dengan tipe SOURCE dan CLASS. Layak dibaca agar tidak tersesat di bagian kedua dan mulai “salah paham” sedikit lagi =) Pasti akan ada setidaknya satu kata di sini yang lho!
Pertama kali saya melihat mereka bermasalah di sini, entah bagaimana saya tidak menyadarinya. Nah Override lagi nongkrong, itu ditulis oleh IDEA, jadi memang begitu. Seiring waktu, saya menyadari bahwa semuanya jauh lebih dalam. Saat Anda belajar, anotasi tampak seperti sesuatu yang tidak berguna, tetapi perlu. Anda tidak tahu mengapa mereka melakukannya. Saya rasa saya membaca beberapa artikel, mereka berkata “betapa hebatnya sekarang kita memiliki anotasi, semuanya menjadi begitu sederhana.” Tapi saya tidak tahu bagaimana sebelumnya, dan saya tidak mengerti bahwa sekarang lebih mudah. Sekarang saya tahu dan saya ingin bercerita sedikit. Ada 3 jenis anotasi (RetentionPolicy):
Asli - belum pernah dilihat dan belum pernah dipakai. Saya pikir ini adalah anotasi yang agak langka, karena... mereka menggunakannya jika mereka perlu menjalankan kode dalam bahasa “asli” lainnya. Saya mencoba mencari referensi yang jelas tentang dia, tetapi saya tidak bisa.
SuppressWarnings - sering digunakan dalam bentuk @SuppressWarnings("tidak dicentang"). Digunakan untuk menyembunyikan peringatan yang Anda sadari. Contoh di atas menghilangkan peringatan tentang casting tipe yang tidak dicentang. Sekali lagi, saya hanya menemukannya dalam bentuk dan penggunaan ini.
Dihasilkan - Saya menemukannya sekarang ketika tugas mengharuskan saya membuat kelas dari file xsd. Ketiga anotasi ini cukup spesifik dan kemungkinan besar tidak menarik bagi Anda saat ini. Saya akan menjelaskan yang terakhir.
Override - Anda menggunakannya sepanjang waktu dan itu melakukan hal yang sangat berguna. Sangat mudah untuk membuat kesalahan saat mengganti suatu metode, kecuali IDEA yang melakukannya. Ada kesalahan ketik atau hanya kesalahan saja. Anotasi ini akan memastikan bahwa metode di kelas induk sama dengan metode (yang diberi label) kita. Ini menjamin kita bahwa metode tersebut akan ditimpa dan tidak ditambahkan. Saat memfaktorkan ulang kode, metode ini dapat dihapus atau diubah. Sekali lagi, anotasi akan menunjukkan kesalahannya kepada Anda. Tanpanya, metode kami akan selesai.
Membosankan? Menurut saya ya, tidak banyak manfaat yang bisa diambil dari artikel ini. Hampir semua isinya (90%) adalah cerita tentang sesuatu yang tidak akan Anda gunakan, atau akan Anda gunakan, tetapi sangat jarang. 10% sisanya adalah halo dan deskripsi anotasi Override, yang sekilas tidak berguna. Nah, menurut saya artikel bagian kedua akan lebih menarik. Akan ada anotasi RUNTIME, dan anotasi tersebut berinteraksi dengan kode secara real time dan menciptakan ilmu hitam. Anotasi. Bagian kedua. Lombok.
- SUMBER – anotasi kompiler
- KELAS – data dari anotasi akan ditulis ke bytecode tetapi tidak akan tersedia selama pengoperasian. Mereka menulis bahwa banyak anotasi di perpustakaan standar menggunakan tipe ini, dan sekarang mereka menyimpannya karena kompatibilitas ke belakang. Digunakan untuk tugas yang sangat spesifik.
- Tanya jawab di StackOverflow
- RUNTIME – yang paling populer, digunakan saat kode sedang berjalan.
- java/lang/annotation/Native.class;
- java/lang/SuppressWarnings.kelas
- javax/anotasi/Generate.class
- ,java/lang/Override.class
- com/sun/istack/internal/Nullable.class
- com/sun/istack/internal/NotNull.class
- com/sun/istack/internal/Interned.class
- Asli – variabel di bawah anotasi ini dapat merujuk ke kode asli;
- SuppressWarnings – menekan berbagai peringatan kompiler;
- Dihasilkan – menandai kode sumber yang dihasilkan;
- Override – memeriksa penggantian metode.
GO TO FULL VERSION