Java - geçerli sınıf adını alayım mı?
Yapmaya çalıştığım tek şey mevcut sınıf adını almak ve java sınıf adımın sonuna işe yaramaz, anlamsız bir $1 ekliyor. Bundan nasıl kurtulabilirim ve yalnızca gerçek sınıf adını nasıl döndürebilirim?
String className = this.getClass().getName();
258
3
Bu "1" "işe yaramaz bir saçmalık" değildir. Sınıfınız anonim ise, bir sayı eklenir.
Eğer sınıfın kendisini değil, bildiren sınıfı istiyorsanız, o zaman
getEnclosingClass()
kullanabilirsiniz. Örneğin:Bunu bazı statik yardımcı program yöntemlerine taşıyabilirsiniz.
Ancak bunun geçerli sınıf adı olmadığını unutmayın. Anonim sınıf, kendisini çevreleyen sınıftan farklı bir sınıftır. İç sınıflar için de durum benzerdir.
Bunu kullanmayı deneyin
this.getClass().getCanonicalName()
veyathis.getClass().getSimpleName()
. Eğer anonim bir sınıf ise,this.getClass().getSuperclass().getName()
kullanın.Örneğinizde
this
muhtemelen anonim bir sınıf örneğini ifade etmektedir. Java, çevreleyen sınıfın adına bir$number
ekleyerek bu sınıflara bir isim verir.