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?


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

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


7

atau secara terprogram

String s = String.class.getName();
s = s.substring(s.lastIndexOf('.') + 1);

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:

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 "[]".


1

Berikut adalah cara Groovy untuk mengakses properti objek:

this.class.simpleName    # returns the simple name of the current class

-2

Dapatkan nama sederhana, bukan jalur.

String onlyClassName =  this.getLocalClassName(); 

panggil metode di atas di onCreate


Solusi tidak lengkap.
PLG

Jika Anda tidak memberikan sumber untuk metode OP tidak akan dapat menggunakannya.
eckes
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.