1. Apa yang dimaksud dengan anotasi duplikat?
Mengizinkan beberapa penggunaan anotasi yang sama pada tipe yang dideklarasikan (kelas, properti, atau metode) yang sama
2. Contoh sederhana
Sebelum Java 8, ada juga solusi untuk menggunakan kembali anotasi, namun keterbacaannya kurang baik, seperti kode berikut:
Copy kode kodenya sebagai berikut:
publik @interface Otoritas {
Peran string();
}
publik @interface Otoritas {
Otoritas[] nilai();
}
kelas publik RepeatAnnotationUseOldVersion {
@Otoritas({@Authority(role="Admin"),@Authority(role="Manager")})
kekosongan publik melakukan Sesuatu(){
}
}
Gunakan anotasi lain untuk menyimpan anotasi berulang. Saat menggunakannya, gunakan Otoritas anotasi penyimpanan untuk memperluas anotasi berulang.
Copy kode kodenya sebagai berikut:
@Repeatable(Otoritas.kelas)
publik @interface Otoritas {
Peran string();
}
publik @interface Otoritas {
Otoritas[] nilai();
}
kelas publik RepeatAnnotationUseNewVersion {
@Otoritas(peran = "Admin")
@Otoritas(peran="Manajer")
kekosongan publik melakukan Sesuatu(){ }
}
Perbedaannya adalah saat membuat Otoritas anotasi berulang, tambahkan @Repeatable untuk menunjuk ke Otoritas anotasi yang disimpan. Saat menggunakannya, anotasi Otoritas dapat digunakan kembali secara langsung. Dari contoh di atas, kita dapat melihat bahwa pendekatan di Java 8 lebih cocok untuk pemikiran konvensional dan lebih mudah dibaca.
3. Ringkasan
JEP120 tidak memiliki banyak konten, ini adalah fitur kecil hanya untuk meningkatkan keterbacaan kode. Kali ini Java 8 telah melakukan dua perbaikan pada anotasi (JEP 104, JEP120, saya yakin anotasi akan lebih sering digunakan daripada sebelumnya).