mendapatkan hanya nama kelas Class.getName ()

88

Bagaimana saya bisa mendapatkan nama kelas

String.class.getName()  returns java.lang.String


Saya hanya tertarik untuk mendapatkan bagian terakhir yaitu hanya String
Any Api yang dapat melakukannya?

akshay
sumber
4
Java memiliki dokumentasi online yang bagus. Halaman yang ditautkan andyb di bawah ini adalah contohnya. Setiap kali Anda memiliki pertanyaan mengenai fungsionalitas yang sebenarnya tersedia dari kelas atau paket, javadocs mudah ditemukan seperti Googling "java 6 <paket atau kelas yang dimaksud>".
jpm

Jawaban:

185

Class.getSimpleName()

andyb
sumber
9
String.class.getSimpleName () -> String, sedangkan String.class.getName () -> java.lang.String
Peter Dietz
Terima kasih, @andyb getSimpleName()lebih mudah mengakses nama kelas tanpa nama paket. Sintaks: object.getClass().getSimpleName() Kode sampel
Abhijeet
Bagaimana menugaskannya untuk variabel string statis. itu menunjukkan kesalahan di studio android.
MohanRaj S
Tidak berfungsi untuk kelas dalam: Ini akan menghapus nama kelas yang melingkupinya, bukan hanya paketnya.
toolforger
9

Di bawah ini kedua cara berfungsi dengan baik.

System.out.println("The Class Name is: " + this.getClass().getName());
System.out.println("The simple Class Name is: " + this.getClass().getSimpleName());

Output seperti di bawah ini:

Nama Kelasnya adalah: package.Student

Nama Kelas yang sederhana adalah: Mahasiswa

Venkatesh K
sumber
7

atau secara terprogram

String s = String.class.getName();
s = s.substring(s.lastIndexOf('.') + 1);
Mauricio Quintana
sumber
1
Ini membantu saya karena saya tidak dapat menggunakan getSimpleName () dari framework saya ... Tq
Imposter
1
Selain itu, pendekatan terprogram menghasilkan hasil yang wajar untuk kelas anonim.
Hollis Waite
@Imposter Anda menggunakan sesuatu yang lebih awal dari Java 1.5?
Stealth Rabbi
Anda perlu menangani kasus di mana tidak ada .yang ditemukan.
eckes
@ memeriksa jika titik tidak ditemukan, hasilnya akan menjadi -1, menambahkan 1 akan memberi Anda substring mulai dari indeks 0 - persis seperti yang Anda butuhkan dalam kasus ini. (Saya baru saja mengujinya dengan int[], hasilnya adalah "[I".)
toolforger
4

Anda dapat menggunakan teknik sederhana berikut untuk mencetak log dengan nama kelas.

private String TAG = MainActivity.class.getSimpleName();

Misalkan kita harus memeriksa nilai variabel yang akan datang dalam metode maka kita dapat menggunakan log seperti di bawah ini:

private void printVariable(){
Log.e(TAG, "printVariable: ");
}

Pentingnya baris ini adalah, kita dapat memeriksa nama metode bersama dengan nama kelas. Untuk menulis jenis log ini.

tulis: - loge dan Enter.

akan mencetak di konsol

E/MainActivity: printVariable:
Kailas Bhakade
sumber
2

Social.class.getSimpleName ()

getSimpleName (): Mengembalikan nama sederhana dari kelas yang mendasari seperti yang diberikan dalam kode sumber. Mengembalikan string kosong jika kelas yang mendasarinya adalah anonim. Nama sederhana dari sebuah array adalah nama sederhana dari tipe komponen dengan "[]" ditambahkan. Secara khusus, nama sederhana dari sebuah larik yang tipe komponennya anonim adalah "[]".

LSD25
sumber
1

Berikut adalah cara Groovy untuk mengakses properti objek:

this.class.simpleName    # returns the simple name of the current class
eaglet3d
sumber
-2

Dapatkan nama sederhana, bukan jalur.

String onlyClassName =  this.getLocalClassName(); 

panggil metode di atas di onCreate

AndroidGeek
sumber
Solusi tidak lengkap.
PLG
Jika Anda tidak memberikan sumber untuk metode OP tidak akan dapat menggunakannya.
eckes