Rumah >Java >javaTutorial >Mengapa Javac Memberi Amaran Mengenai Operasi Tidak Ditanda atau Tidak Selamat di Java?

Mengapa Javac Memberi Amaran Mengenai Operasi Tidak Ditanda atau Tidak Selamat di Java?

DDD
DDDasal
2024-12-27 18:26:14686semak imbas

Why Does Javac Warn About Unchecked or Unsafe Operations in Java?

Mengapa Javac Mengeluarkan Amaran "Menggunakan Operasi Tidak Ditanda atau Tidak Selamat"?

Apabila menyusun kod Java dengan javac, pembangun mungkin menghadapi amaran :

javac Foo.java
Note: Foo.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Amaran ini menunjukkan bahawa pengkompil telah mengesan potensi isu keselamatan jenis dalam kod.

Punca Amaran:

Amaran boleh timbul apabila menggunakan koleksi tanpa penentu jenis dalam Java versi 5 dan lebih baru. Sebagai contoh, menggunakan Arraylist() dan bukannya ArrayList() akan mencetuskan amaran ini. Ini menunjukkan bahawa pengkompil tidak boleh mengesahkan penggunaan koleksi yang selamat jenis kerana kekurangan maklumat jenis generik.

Penyelesaian:

Untuk menghapuskan amaran, nyatakan jenis objek yang akan disimpan dalam koleksi. Daripada:

List myList = new ArrayList();

Gunakan:

List<String> myList = new ArrayList<String>();

Ini menjelaskan jenis elemen yang dijangkakan dalam koleksi dan membolehkan pengkompil melakukan semakan jenis.

Taip Inferens dalam Java 7:

Bermula dengan Java 7, taip inferens boleh digunakan untuk memudahkan instantiasi generik. Coretan kod berikut mencapai perkara yang sama seperti contoh sebelumnya:

List<String> myList = new ArrayList<>();

Dengan memanfaatkan inferens jenis, pengkompil boleh menyimpulkan jenis generik daripada jenis elemen yang ditambahkan pada koleksi.

Atas ialah kandungan terperinci Mengapa Javac Memberi Amaran Mengenai Operasi Tidak Ditanda atau Tidak Selamat di 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