Class.getName () sınıfının yalnızca adını alma


88

Sınıfın adını nasıl alabilirim

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


Ben sadece son kısmı almakla ilgileniyorum, yani sadece String
Any Api bunu yapabilir mi?


4
Java'nın harika çevrimiçi belgeleri vardır. Andyb'nin aşağıda bağlantı verdiği sayfa bir örnektir. Bir sınıf veya pakette bulunan tam işlevsellikle ilgili bir sorunuz olduğunda, javadoc'ları Google'da bulması "java 6 <söz konusu paket veya sınıf>" kadar kolaydır.
jpm

Yanıtlar:


185

9
String.class.getSimpleName () -> String, burada String.class.getName () -> java.lang.String
Peter Dietz

Teşekkürler, @andyb getSimpleName()paket adı hariç sınıf adına erişmek daha kolaydır. Sözdizimi: object.getClass().getSimpleName() Örnek kod
Abhijeet

Statik dizge değişkeni için nasıl atanır. android stüdyosunda bir hata gösteriyor.
MohanRaj S

İç sınıflar için çalışmaz: Bu, yalnızca paketi değil, çevreleyen sınıfın adını da çıkarır.
toolforger

9

Aşağıdaki her iki yol da iyi çalışıyor.

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

Aşağıdaki gibi çıktı:

Sınıf Adı: package.Student

Basit Sınıf Adı: Öğrenci


7

veya programlı olarak

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

1
Çerçevemden getSimpleName () kullanamadığım için bu bana yardımcı oldu ... Tq
Imposter

1
Ayrıca programatik yaklaşım, anonim sınıflar için mantıklı sonuçlar verir.
Hollis Waite

@Imposter Java 1.5'ten daha eski bir şey mi kullanıyorsunuz?
Stealth Rabbi

Hiçbir .şeyin bulunmadığı davayı halletmeniz gerekir .
eckes

Nokta bulunamazsa @eckes, sonuç -1 olur, 1 eklemek size 0 dizininden başlayan bir alt dize verir - bu durumda tam olarak ihtiyacınız olan şey. (Bunu az önce test ettim int[], sonuç şu oldu "[I".)
toolforger

4

Sınıf adı ile yazdırma günlüğü için aşağıdaki basit tekniği kullanabilirsiniz.

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

Yöntemde gelen değişken değeri kontrol etmemiz gerektiğini varsayalım, ardından aşağıdaki gibi log kullanabiliriz:

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

Bu satırın önemi, sınıf adı ile birlikte metot adını da kontrol edebilmemizdir. Bu tür bir günlük yazmak için.

yazma: - loge ve Enter.

konsolda yazdıracak

E/MainActivity: printVariable:

2

Social.class.getSimpleName ()

getSimpleName (): Kaynak kodda verildiği şekliyle temel alınan sınıfın basit adını döndürür. Temel sınıf anonimse boş bir dize döndürür. Bir dizinin basit adı, "[]" eklenmiş bileşen türünün basit adıdır. Özellikle, bileşen türü anonim olan bir dizinin basit adı "[]" dir.


1

Nesne özelliklerine erişmenin Groovy yolu:

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

-2

Yol yerine basit bir isim alın.

String onlyClassName =  this.getLocalClassName(); 

onCreate'de yukarıdaki yöntemi çağırın


Eksik çözüm.
PLG

OP yöntemi için kaynak sağlamazsanız, onu kullanamazsınız.
eckes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.