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
Lepaskan: 2024-12-27 18:26:14
asal
674 orang telah melayarinya

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.
Salin selepas log masuk

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();
Salin selepas log masuk

Gunakan:

List<String> myList = new ArrayList<String>();
Salin selepas log masuk

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<>();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan