Rumah  >  Artikel  >  Java  >  Anotasi Java

Anotasi Java

WBOY
WBOYasal
2024-08-30 16:06:26473semak imbas

Anotasi telah diperkenalkan atau tersedia dalam versi 1.5 Java Development Kit (JDK). Anotasi dalam Java memberikan lebih banyak maklumat tentang data yang terdapat dalam struktur kod, iaitu, ia adalah data tentang data, juga dikenali sebagai metadata.

Apakah Anotasi dalam Java?

Anotasi membantu dalam menentukan metadata dalam kod dengan cara yang standard. Selain itu, anotasi membantu dalam memberikan arahan kepada pengkompil java anda untuk diikuti semasa menyusun kod java itu.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Anotasi Java

Apabila menggunakan anotasi, kami menggunakan tanda ‘@’ dan kemudian diikuti dengan nama anotasi anda supaya pengkompil menganggapnya sebagai anotasi.

Adalah penting untuk ambil perhatian bahawa anotasi boleh ditambah sebelum:

  • Pengisytiharan kelas
  • Pengisytiharan pembolehubah ahli
  • Pengisytiharan pembina
  • Pengisytiharan kaedah
  • Pengisytiharan parameter
  • Pengisytiharan pembolehubah setempat.

Perkara penting yang perlu diingat ialah semua anotasi memanjangkan antara muka java.lang.annotation.Annotation. Selain itu, anotasi tidak boleh termasuk mana-mana klausa lanjutan.

Anotasi Java Terbina dalam

Di Java, terdapat anotasi terbina seperti @Override, @Deprecated, @SuppressWarnings yang direka untuk tujuan tertentu dan digunakan dalam salah satu situasi di atas, contohnya, hanya untuk kelas atau sahaja untuk kaedah, dsb.

Contoh #1 – Gantikan

Kod:

class Dad {
public void say() {
System.out.println("Do your homework");
}
}
public class Child extends Dad {
@Override
public void say(){
System.out.println("I wanna play");
}
public static void main(String args[]){
Dad daddy = new Child();
daddy.say();
}
}

Output:

Anotasi Java

Contoh #2 – Ditamatkan

Kod:

public class Outdated
{
@Deprecated
public void oldShow()
{
System.out.println("This Method is deprecated");  }
public static void main(String args[])
{
Outdated  od = new Outdated ();
od.oldShow();
}
}

Output:

Anotasi Java

Anotasi Java

Anotasi Meta

Terdapat lima jenis anotasi meta:

  1. Didokumentasikan – Ia memaklumkan bahawa ahli, pembolehubah atau kelas yang menggunakan anotasi ini perlu didokumenkan oleh Javadoc atau mana-mana alatan lain yang serupa yang tersedia.
  2. Sasaran – Ia digunakan untuk menentukan jenis anotasi digunakan. Ia kebanyakannya digunakan bersama anotasi tersuai anda.
  3. Diwarisi – Ia menandakan anotasi yang akan diwarisi kepada subkelas.
  4. Pengekalan – Ia menunjukkan berapa lama anotasi dengan jenis beranotasi akan disimpan. Ia memerlukan hujah Dasar Pengekalan yang nilai Kemungkinannya ialah: SOURCE, CLASS dan RUNTIME.
  5. Boleh Diulang – Ini memaklumkan bahawa jenis anotasi yang pengisytiharannya dianotasinya boleh diulang.

Contoh – Dokumentasi dan Pengekalan

Kod:

import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@interface RSample {
String rentent();
}
@Documented
@interface DSample {
String doc();
}
public class MetaAnnotate {
public static void main(String arg[])
{
new MetaAnnotate().rentent();
new MetaAnnotate().doc();
}
@RSample (rentent="Meta Info R")
public void rentent() {
System.out.println("Retention Policy Applied");
}
@DSample(doc="Meta Info D")
public void doc() {
System.out.println("Code Documented with the value");
}
}

Output:

Anotasi Java

Penjelasan:

  • RetentionPolicy.RUNTIME – Nilai ini menentukan bahawa nilai anotasi harus tersedia semasa runtime untuk pemeriksaan melalui refleksi java.
  • Jalankan arahan Javadoc untuk melihat dokumentasi kod anda.

Jenis Anotasi

Terdapat tiga kategori anotasi, dan terdapat seperti berikut:

1. Anotasi Penanda – Jenis anotasi ini digunakan sebagai pengisytiharan untuk memberitahu pembangun tentang fungsi atau kelas di bawah, iaitu, ia berkongsi maklumat tambahan tentang fungsi atau kelas seperti sama ada fungsi itu mengatasi fungsi lain atau adalah fungsi ditamatkan, dsb. @Override, @Deprecated dianggap sebagai anotasi penanda.

Contoh: DemoAnnotation()

2. Anotasi Nilai Tunggal – Anotasi jenis ini mengambil nilai untuk menentukan nilai itu untuk ahli yang mana anotasi diletakkan di hadapan dan oleh itu, tidak perlu menyatakan nama ahli tersebut.

Contoh: DemoAnnotation(“custId123”)

3. Anotasi Penuh – Anotasi jenis ini mengambil pelbagai nilai, pasangan, ahli.

Contoh: DemoAnotasi(kategori=”Mainan”, nilai=1500)

Tersuai

Anotasi tersuai dibuat oleh antara muka pengguna, diikuti dengan nama anotasi, seperti yang akan kita lihat dalam contoh di bawah.

Fail 1: Anotasi Tersuai Ditakrifkan

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface Magicians
{
String Wizard() default "Reynolds";
String House() default "Green";
}
@Magicians
public class Magician
{
@Magicians(Wizard = "Harry Potter", House = "Red")
public String getString()  {  return null; }
}

Fail 2: Kelas Utama yang memanggil Kelas Anotasi Tersuai

import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;
public class MyCustomAnnotation
{
public static void main(String[] args) throws NoSuchMethodException, SecurityException
{
new Magician();
Class<Magician> magic = Magician.class;
readAnnotationOn(magic);
Method method = magic.getMethod("getString", new Class[]{});
readAnnotationOn(method);
}
static void readAnnotationOn(AnnotatedElement element)
{
try
{
System.out.println("\n Find annotations on " + element.getClass().getName());
Annotation[] annotations = element.getAnnotations();
for (Annotation annotation : annotations)
{
if (annotation instanceof Magicians)
{
Magicians mData = (Magicians) annotation;
System.out.println("Wizard Name :" + mData.Wizard());
System.out.println("Wizard House Color :" + mData.House());
}
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}

Output:

Anotasi Java

Kesimpulan

Dalam artikel ini, kami melihat tentang apa itu anotasi java dan jenisnya dengan contoh,  kami melihat contoh anotasi terbina dalam yang disediakan oleh java dan mengodkan anotasi tersuai kami. Kami melihat anotasi yang berguna dalam menyeragamkan kod dan juga membantu dalam memahami kod dan strukturnya dengan lebih baik.

Atas ialah kandungan terperinci Anotasi Java. 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
Artikel sebelumnya:Autoboxing dan Unboxing di JavaArtikel seterusnya:Autoboxing dan Unboxing di Java