Memanggil Kaedah Bukan Statik Dalam Kaedah Statik: Perangkap Biasa
Di Java, cuba menggunakan kaedah bukan statik dalam statik kaedah boleh mengakibatkan ralat yang membingungkan: "Tidak boleh membuat rujukan statik kepada kaedah kaedah bukan statik methodName()". Ralat ini timbul kerana kaedah statik, secara semula jadi, beroperasi pada peringkat kelas, manakala kaedah bukan statik terikat pada kejadian khusus kelas.
Untuk menyelesaikan isu ini, terdapat beberapa pendekatan yang perlu dipertimbangkan:
Memahami Perbezaan
Menggunakan Contoh
Penyelesaian yang paling mudah ialah mencipta contoh kelas sasaran dalam kaedah statik. Kemudian, kaedah bukan statik boleh digunakan pada contoh.
public static void callNonStaticMethod() { MyClass instance = new MyClass(); instance.nonStaticMethod(); }
Mengakses Konteks Statik Dalam Kaedah Bukan Statik
Dalam sesetengah kes, kaedah bukan statik memerlukan akses kepada konteks kelas. Dalam keadaan sedemikian, kaedah getClass() boleh digunakan untuk mengakses objek kelas:
public void nonStaticMethod() { Class<?> targetClass = getClass(); // ... access static methods or members here }
Mempertimbangkan Alternatif Reka Bentuk
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Kaedah Bukan Statik dari Dalam Kaedah Statik di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!