Tips java dan cara terbaik untuk menghindari nullponintexception di aplikasi java
Dalam aplikasi Java, nullponintexception (NULL Pointer Exception) adalah solusi terbaik (masalah). Pada saat yang sama, penunjuk nol juga merupakan kunci untuk menulis kode yang kuat dan mulus. Ungkapan "Pencegahan lebih baik daripada pengobatan" juga berlaku untuk Nullponintexception yang tidak menyenangkan. Dengan menerapkan teknik pengkodean defensif dan konvensi berikut antara beberapa bagian, Anda dapat menghindari NullpointException sebagian besar. Tip Java berikut dapat meminimalkan gambar! = Kode nol untuk pemeriksaan semacam ini. Sebagai programmer Java yang berpengalaman, Anda mungkin menyadari bahwa beberapa teknologi ini digunakan dalam beberapa proyek. Tetapi untuk mahasiswa tahun pertama dan pengembang menengah, ini adalah kesempatan belajar yang hebat.
Ini adalah beberapa teknik sederhana yang mudah dipelajari, tetapi mereka sangat penting untuk kualitas kode dan ketahanan. Dalam pengalaman saya, trik pertama telah memainkan peran besar dalam meningkatkan kualitas kode.
1) Call Equal () dan EqualsingNorecase () pada string yang ada (string) alih -alih objek yang tidak diketahui
Biasanya, sama () dipanggil pada string yang tidak kosong. Karena metode yang sama () adalah simetris, memanggil A.Equal () setara dengan memanggil B.Equal (), dan inilah sebabnya banyak yang memperhatikan objek A dan B, jika satu sisi dari kosong akan menyebabkan penunjuk nol.
Objek unknownObject = null; // cara yang salah - dapat menyebabkan nullpointerExceptionif (unknownObject.equals ("diketahui hale")) {system.err.println ("Ini dapat mengakibatkan nullPointerException jika tidak diketahui) (nully (" nullufy ("nullPoucy (tidak diketahui." System.err.println ("Coding yang lebih baik menghindari nullpointerException");}Ini adalah trik Java yang paling penting untuk menghindari NullpointException, tetapi hasilnya akan menjadi peningkatan besar karena sama () adalah metode yang sangat umum.
2) Ketika keduanya mengembalikan hasil yang sama, nilai dari () lebih disukai daripada tostring ()
Karena objek kosong akan melempar NullpointException saat memanggil Tostring (). Jika kita bisa mendapatkan nilai yang sama dengan menelepon nilai (), kita harus menggunakan nilai (). Ini akan memberikan nilai nol. Terutama dalam kasus kelas pengemasan seperti Integer, Float, Double atau BigDecimla.
BigDecimal BD = getPrice (); System.out.println (String.ValueOf (BD)); // tidak melempar npesystem.out.println (bd.tostring ()); // melempar "pengecualian di utas" utama "java.lang.nullpointerException"
Jika Anda tidak yakin apakah objek yang Anda gunakan kosong, silakan gunakan trik java ini
3) Gunakan Metode Aman Null atau Perpustakaan Kelas
Ada banyak komponen open source yang nol diperiksa untuk Anda sekarang. Salah satu yang paling umum adalah stringutils Apache. Anda dapat menggunakan stringutils.isblank (), isNumberic (), iswhitespace () dan alat lain tanpa khawatir tentang metode NullpointException.
System.out.println (stringutils.isempty (null)); System.out.println (stringutils.isblank (null)); System.out.println (stringutils.isnumeric (null)); output.out.println (stringutils.isalluppercase (null)); output
Tapi jangan lupa membaca dokumentasi tentang metode dan kelas keamanan nol sebelum membuat kesimpulan. Ini adalah bor Java terbaik lainnya, yang tidak akan mengharuskan Anda melakukan banyak upaya, tetapi akan membuat Anda banyak kemajuan.
4) Hindari mengembalikan koleksi kosong atau array kosong alih -alih mengembalikan nol dari metode ini
Teknik Java ini juga disebutkan dalam "Jawa Efektif" Joshua Bloch. Buku ini juga merupakan sumber untuk meningkatkan kemampuan pengkodean Java. Dengan mengembalikan koleksi kosong atau array kosong, dapat ditentukan bahwa panggilan dasar seperti ukuran () dan panjang () tidak akan melempar NullpointException. Kelas koleksi dapat memberikan daftar kosong yang nyaman, set dan peta, (ini) memiliki collections.empty_list, collections.empty_set dan collections.empty_map dan ini dapat digunakan (variabel statis).
Kode adalah sebagai berikut;
Getorder Daftar Publik (Pelanggan Pelanggan) {Daftar Hasil = Collections.empty_list; hasil pengembalian; }Demikian pula Anda dapat menggunakan collections.empty_list, collections.empty_set dan collections.empty_map alih -alih mengembalikan nol.
5) Komentar dengan @notnull dan @nullable
Saat menulis, Anda dapat mendefinisikan konvensi nullability, Anda harus meminta apakah metode ini nol aman dengan menggunakan komentar seperti @notnull dan @nullable. Kompiler modern, IDE, dan alat lain dapat membaca komentar ini untuk membantu Anda melakukan cek kosong atau memberi tahu Anda apakah Anda memerlukan cek kosong. IntelliJide dan Findbugs sudah mendukung anotasi ini. Komentar -komentar ini juga merupakan bagian dari JSR 305 (Catatan Penerjemah: dapat dipahami sebagai standar Java). Dengan melihat @notnull dan @nullable, pemrogram dapat memutuskan apakah akan melakukan cek kosong. Ngomong -ngomong, ini adalah praktik terbaik baru untuk pemrogram Java, meskipun butuh sedikit waktu untuk beradaptasi.
6) Ikuti konvensi dan tentukan nilai default yang masuk akal
Di bidang Java, salah satu cara terbaik untuk menghindari pointer nol adalah membuat perjanjian dan mematuhi mereka. Sebagian besar NullpointExceptions terjadi karena mereka menggunakan informasi yang tidak lengkap atau tidak dilengkapi dengan semua dependensi untuk membuat objek. Jika Anda tidak mengizinkan membuat objek yang tidak lengkap dan meniadakan persyaratan tersebut, Anda dapat mencegah banyak NullpointExceptions yang terjadi setelah beberapa saat. Jika objek diizinkan dibuat, maka Anda harus menetapkan nilai default yang masuk akal. Misalnya, objek karyawan tidak dapat dibuat tanpa atribut ID dan nama, tetapi dapat memiliki nomor pghone opsional. Jika karyawan tidak memiliki nomor telepon, maka kembalikan 0 alih -alih mengembalikan nilai nol. Tetapi pemrosesan semacam ini harus menangani memeriksa nilai nol dengan sangat hati -hati daripada memeriksa input ilegal. Perhatikan juga bahwa ketika mendefinisikan nilai nol atau tidak, ingatkan penelepon untuk membuat keputusan yang tepat. Memilih atau menerima nilai nol setelah kegagalan juga merupakan desain penting yang perlu Anda perhatikan.
7) Jika Anda menggunakan database untuk menyimpan objek domain Anda (objek Demain)
Misalnya: Pelanggan, Pesanan, dll., Maka Anda harus mendefinisikan beberapa kendala pada nilai nol dalam database. Karena database dapat memerlukan data dari berbagai sumber, memiliki pemeriksaan nilai nol dalam database akan memastikan integritas data. Menjaga kendala pada nilai nol dalam database juga akan memungkinkan Anda untuk mengurangi pemeriksaan nol di Java. Saat Anda mengambil objek dari database, Anda dapat memastikan bahwa properti tersebut dapat kosong dan properti tersebut tidak dapat kosong, yang akan meminimalkan kode untuk cek kosong tersebut.
8) Gunakan mode objek kosong
Ini adalah cara lain untuk menghindari NullpointException di Java. Jika suatu metode mengembalikan suatu objek, yang ingin dipanggil untuk mengulangi objek, penelepon mana yang perlu menggunakan beberapa metode yang mirip dengan collection.iterator () untuk mengembalikan iterator. Jika penelepon tidak memiliki metode di atas, ada kemungkinan bahwa objek kosong dikembalikan, bukan nol. Objek kosong adalah objek khusus yang memiliki makna berbeda dalam konteks yang berbeda. Dalam kasus di mana metode seperti ini mengembalikan jenis kontrainter atau koneksi, objek kosong (objek kosong) di dalamnya harus digunakan alih -alih kembali kosong.