Apa tujuan anotasi di Java? Saya memiliki gagasan kabur tentang mereka sebagai suatu tempat di antara komentar dan kode aktual. Apakah mereka mempengaruhi program pada saat dijalankan?
Apa kegunaan tipikal mereka?
Apakah mereka unik di Jawa? Apakah ada setara C ++?
java
annotations
glossary
Lehane
sumber
sumber
Jawaban:
Anotasi terutama digunakan oleh kode yang memeriksa kode lain. Mereka sering digunakan untuk memodifikasi (yaitu mendekorasi atau membungkus) kelas yang ada pada saat berjalan untuk mengubah perilakunya. Kerangka kerja seperti JUnit dan Hibernate menggunakan anotasi untuk meminimalkan jumlah kode yang perlu Anda tulis sendiri untuk menggunakan kerangka kerja.
Oracle memiliki penjelasan yang baik tentang konsep dan maknanya di Java di situs mereka.
sumber
Tidak, tapi VB dan C # memiliki atribut yang sama.
Penggunaannya cukup beragam. Satu contoh Java yang khas,
@Override
tidak berpengaruh pada kode tetapi dapat digunakan oleh kompilator untuk menghasilkan peringatan (atau kesalahan) jika metode yang didekorasi tidak benar-benar menimpa metode lain. Demikian pula, metode dapat ditandai usang.Lalu ada refleksi. Saat Anda mencerminkan jenis kelas dalam kode Anda, Anda dapat mengakses atribut dan bertindak sesuai dengan informasi yang ditemukan di sana. Saya tidak tahu contoh apa pun di Java tetapi di .NET ini digunakan oleh kompiler untuk menghasilkan (de) informasi serialisasi untuk kelas, menentukan tata letak memori struktur dan mendeklarasikan impor fungsi dari pustaka warisan (antara lain). Mereka juga mengontrol cara kerja desainer formulir IDE.
/ EDIT: Atribut pada kelas sebanding dengan antarmuka tag (seperti Serializable di Java). Namun, pedoman pengkodean .NET mengatakan untuk tidak menggunakan antarmuka tag. Juga, mereka hanya bekerja pada level kelas, bukan pada level metode.
sumber
Anders memberikan ringkasan yang bagus, dan berikut adalah contoh anotasi JUnit
Di sini
@Test
anotasi memberi tahu JUnit bahwaflatfileMissing
metode tersebut adalah pengujian yang harus dijalankan dan bahwa hasil yang diharapkan adalah dilemparIOException
. Jadi, saat Anda menjalankan pengujian, metode ini akan dipanggil dan pengujian akan lulus atau gagal berdasarkan apakah sebuahIOException
dilempar.sumber
Java juga memiliki Alat Pemrosesan Anotasi (apt) di mana Anda tidak hanya membuat anotasi, tetapi juga memutuskan bagaimana anotasi ini bekerja pada kode sumber.
Berikut adalah pengantar.
sumber
Untuk melihat beberapa hal keren yang dapat Anda lakukan dengan Anotasi, lihat pemroses anotasi dan anotasi JavaBean saya .
Mereka bagus untuk menghasilkan kode, menambahkan validasi ekstra selama pembuatan Anda, dan saya juga telah menggunakannya untuk kerangka pesan kesalahan (belum diterbitkan - perlu jelas dengan bos ...).
sumber
Menurut definisi literal, anotasi menambahkan catatan ke elemen. Demikian pula, anotasi Java adalah tag yang kami masukkan ke dalam kode sumber untuk memberikan informasi lebih lanjut tentang kode tersebut. Anotasi Java mengaitkan informasi dengan elemen program beranotasi. Selain penjelasan Java, program Java memiliki banyak sekali dokumentasi informal yang biasanya terkandung di dalam komentar di file kode sumber. Namun, penjelasan Java berbeda dengan komentar, penjelasannya menganotasi elemen program secara langsung menggunakan jenis anotasi untuk mendeskripsikan bentuk anotasi. Anotasi Java menyajikan informasi dengan cara standar dan terstruktur sehingga dapat digunakan dengan baik oleh alat pemrosesan.
Untuk membaca secara detail, ada tutorial bagus tentang Anotasi Java
sumber
Kapan Anda menggunakan anotasi @Override Java dan mengapa? Tautan merujuk ke pertanyaan tentang kapan seseorang harus menggunakan anotasi pengganti (@ override) .. Ini mungkin membantu memahami konsep anotasi dengan lebih baik. Lihat.
sumber
Anotasi dalam hal EJB dikenal sebagai memilih pendekatan perangkat menengah implisit daripada pendekatan perangkat menengah eksplisit, saat Anda menggunakan anotasi, Anda menyesuaikan apa yang sebenarnya Anda butuhkan dari API, misalnya Anda perlu memanggil metode transaksi untuk transfer bank : tanpa menggunakan anotasi: kode akan menjadi
ketika menggunakan Annotation, kode Anda tidak berisi panggilan API yang rumit untuk menggunakan layanan perantara. Kode tersebut bersih dan berfokus pada logika bisnis
sumber