Rumah >Java >javaTutorial >Bagaimana untuk mendapatkan nama kelas dalam java
Jika kita ingin mendapatkan nama kelas yang sedang berjalan, bagaimana kita hendak mendapatkannya?
Dalam kelas Kelas, terdapat kaedah berikut:
Sebagai contoh, kini terdapat kelas Demo7 .java
package pxx.test1; public class Demo7 { public static void main(String[] args) { Demo7 demo7 = new Demo7(); System.out.println(demo7.getClass().getName()); } }
Hasil operasi:
Di atas ialah objek memanggil terus getClass() untuk mendapatkan Objek kelas, dan kemudian panggil getName () Dapatkan nama kelas yang sedang berjalan.
Jadi jika kelas mewarisi kelas, bagaimana untuk mendapatkan nama kelas semasa dan nama kelas induk? >Demo9.java
package pxx.test1; public class Demo8 { int num; String name; public Demo8(){}; }Di atas kami menggunakan super untuk memanggil kaedah getClass(), dan kemudian mendapatkan nama kelas Perlu diingatkan di sini bahawa super hanya boleh memanggil kaedah bukan statik induk class. , dan tidak boleh dipanggil dalam kaedah statik, kerana super, seperti ini, adalah berdasarkan operasi objek. Bercakap mengenainya, getClass() kelas induk dipanggil di sini, jadi saya ingin mendapatkan nama kelas kelas induk Baik, saya menjalankan
dan masih boleh. 't dapatkan nama kelas kelas induk , kemudian mari kita lihat kaedah geClass() Kaedah ini berada dalam objek Object
Ternyata. kaedah ini adalah muktamad, iaitu kaedah ini diwarisi oleh kelas lain Ya, tetapi ia tidak boleh ditindih Oleh itu, this.getClass dan super.getClass akhirnya memanggil kaedah getClass dalam kelas Objek, dan definisi ini. kaedah adalah untuk mengembalikan kelas runtime Object, jadi di atas akan mengembalikan nama kelasnya sendiri dan bukannya nama kelas induk.
Jadi bagaimana untuk mendapatkan nama kelas induk?
Mari pergi ke kelas Kelas dan lihat dan cari kaedah berikut:
Bermaksud di atas, Akan mengembalikan kelas induk kelas panggilan semasa Selepas mendapat kelas induk, kita masih boleh menggunakan getName() untuk mendapatkan nama di atas package pxx.test1;
public class Demo9 extends Demo8 {
public void test() {
System.out.println(super.getClass().getName());
}
public static void main(String[] args) {
new Demo9().test();
}
}
<.>
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nama kelas dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!