Anotasi Java ialah metadata berkuasa yang menambah kelas, kaedah dan banyak lagi. Walau bagaimanapun, tidak seperti kelas Java, anotasi tidak mempunyai keupayaan untuk mewarisi daripada anotasi lain. Keputusan reka bentuk ini telah menimbulkan persoalan dalam kalangan pembangun yang melihat potensi manfaat daripada pewarisan dalam anotasi.
Secara khususnya, menggunakan warisan akan membolehkan anotasi mewarisi harta, seperti peraturan pengesahan, daripada ibu bapa mereka. Ini akan membolehkan pembangun menyemak jenis anotasi tertentu dengan mudah, seperti "pengesah," dengan secara refleks merentasi hierarki superclass.
Mengapa Tiada Warisan untuk Anotasi?
The Soalan Lazim Reka Bentuk JSR 175 memberikan pandangan tentang rasional di sebalik pilihan reka bentuk ini:
"Mengapa anda tidak menyokong subtaip anotasi (di mana satu jenis anotasi memanjangkan yang lain)?"
"Ia merumitkan sistem jenis anotasi dan menjadikannya lebih sukar untuk menulis "Alat Khusus"."
"Alat Khusus" merujuk kepada program yang memeriksa jenis anotasi pada masa jalan tanpa memuatkan kelas asas. Penjana rintisan, contohnya, menggunakan pendekatan ini. Warisan boleh menghalang kefungsian alatan ini, menjadikannya sukar untuk mengenal pasti dan memproses anotasi dengan berkesan.
Pendekatan Alternatif
Walaupun anotasi tidak mempunyai warisan langsung, terdapat mekanisme alternatif untuk mencapai beberapa kefungsian yang diingini:
Walaupun penyelesaian ini menawarkan sedikit fleksibiliti, ia tidak semudah warisan langsung. Keputusan untuk menyekat pewarisan dalam anotasi akhirnya bertujuan untuk mengekalkan kesederhanaan dalam sistem anotasi dan penggunaannya dengan alat analisis luaran.
Atas ialah kandungan terperinci Mengapa Anotasi Java Tidak Menyokong Warisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!