Java @ Anotasi Tidak Digunakan

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan melihat API yang tidak digunakan lagi di Java dan cara menggunakan anotasi @Deprecated .

2. Anotasi @Deprecated

Semasa projek berkembang, APInya berubah. Lama kelamaan, terdapat pembangun, bidang, jenis atau kaedah tertentu yang kita tidak mahu orang gunakan lagi.

Daripada memecahkan keserasian API projek, kami dapat menandakan elemen ini dengan anotasi @Deprecated .

@Deprecated memberitahu pemaju lain yang yang elemen ketara tidak lagi digunakan . Adalah lazim juga untuk menambahkan beberapa Javadoc di sebelahanotasi @Deprecated untuk menerangkan apa yang akan menjadi alternatif yang lebih baik yang berfungsi dengan betul

public class Worker { /** * Calculate period between versions * @deprecated * This method is no longer acceptable to compute time between versions. * 

Use {@link Utils#calculatePeriod(Machine)} instead. * * @param machine instance * @return computed time */ @Deprecated public int calculate(Machine machine) { return machine.exportVersions().size() * 10; } }

Ingat bahawa penyusun hanya memaparkan peringatan API yang tidak digunakan lagi jika elemen Java yang dijelaskan digunakan di suatu tempat dalam kod. Jadi, dalam kes ini, ia hanya akan menunjukkan jika ada kod yang disebut kaedah hitung .

Juga, kami dapat menyampaikan status yang tidak digunakan dalam dokumentasi juga dengan menggunakan tag Javadoc @deprecated .

3. Atribut Pilihan Ditambah di Java 9

Java 9 menambah beberapa atribut pilihan pada anotasi @Deprecated : sejak dan untukRemoval .

Yang sejak atribut memerlukan rentetan yang membolehkan kita menentukan di mana versi elemen telah dikecam. Nilai lalai adalah rentetan kosong.

Dan forRemoval adalah boolean yang membolehkan kita menentukan apakah elemen tersebut akan dikeluarkan pada rilis seterusnya. Nilai lalai adalah salah:

public class Worker { /** * Calculate period between versions * @deprecated * This method is no longer acceptable to compute time between versions. * 

Use {@link Utils#calculatePeriod(Machine)} instead. * * @param machine instance * @return computed time */ @Deprecated(since = "4.5", forRemoval = true) public int calculate(Machine machine) { return machine.exportVersions().size() * 10; } }

Ringkasnya, penggunaan di atas bermaksud pengiraan sudah tidak digunakan lagi sejak 4.5 perpustakaan kami dan yang dijadualkan untuk dihapus pada rilis utama seterusnya.

Sangat berguna bagi kita untuk menambahkannya kerana penyusun akan memberi kita amaran yang lebih kuat jika mendapati bahawa kita menggunakan kaedah dengan nilai tersebut.

Dan sudah ada sokongan dari IDE untuk mengesan penggunaan kaedah yang ditandai dengan forRemoval = true. Sebagai contoh, IntelliJ menyerang kod dengan garis merah dan bukannya garis hitam.

4. Kesimpulan

Dalam artikel ringkas ini, kami melihat cara menggunakan anotasi @Deprecated dan atribut pilihannya untuk menandakan kod yang tidak boleh digunakan lagi.

Kod sumber lengkap untuk contoh boleh didapati di GitHub.