Jawaban @ jjnguy benar dalam banyak situasi. Anda tidak akan pernah melihat null
String dalam array argumen (atau null
array) jika main
dipanggil dengan menjalankan aplikasi dijalankan dari baris perintah dengan cara biasa.
Namun, jika beberapa bagian lain dari aplikasi memanggil sebuah main
metode, bisa dibayangkan bahwa itu mungkin melewatkan null
argumen atau null
array argumen.
Namun (2), ini jelas merupakan kasus penggunaan yang sangat tidak biasa, dan ini merupakan pelanggaran berat terhadap kontrak tersirat untuk main
metode titik masuk. Oleh karena itu, saya rasa Anda tidak perlu repot-repot memeriksa null
nilai argumen di main
. Dalam hal yang tidak mungkin terjadi, itu dapat diterima untuk kode panggilan untuk mendapatkan NullPointerException
. Bagaimanapun, itu adalah bug di penelepon untuk melanggar kontrak.
null
cek tidak perlu, tetapi Anda benar bahwalength
cek diperlukan,jika saya ingin memeriksa apakah ada posisi tertentu dari argumen baris perintah yang dilewatkan atau tidak, lalu bagaimana cara memeriksa? seperti misalnya dalam beberapa skenario 2 baris perintah args akan dilewatkan dan dalam beberapa hanya satu yang akan dilewatkan lalu bagaimana cara memeriksa apakah baris commnad specfic dilewati atau tidak?
public class check { public static void main(String[] args) { if(args[0].length()!=0) { System.out.println("entered first if"); } if(args[0].length()!=0 && args[1].length()!=0) { System.out.println("entered second if"); } } }
Jadi pada kode di atas jika args [1] tidak dilewatkan maka saya mendapatkan java.lang.ArrayIndexOutOfBoundsException:
jadi bagaimana cara saya menangani ini di mana saya dapat memeriksa apakah argumen kedua berlalu atau tidak dan jika lulus kemudian masukkan. membutuhkan bantuan secepatnya.
sumber
Jika Anda tidak meneruskan argumen apa pun, bahkan dalam kasus itu args diinisialisasi tetapi tanpa item / elemen apa pun. Coba yang berikut ini, Anda akan mendapatkan efek yang sama :
public static void main(String[] args) throws InterruptedException { String [] dummy= new String [] {}; if(dummy[0] == null) { System.out.println("Proper Usage is: java program filename"); System.exit(0); } }
sumber
main
metode tersebut akan dipanggil denganargs
larik yang panjangnya nol.dummy[0]
melempar indeks array keluar dari batas pengecualian !! Ditto jika Anda mengubah program (kembali) ke pengujianargs[0]
dan menjalankannya tanpa argumen.