クラスの名前のみを取得するClass.getName()


88

クラスの名前を取得するにはどうすればよいですか

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


私は最後の部分、つまりString
Any Apiだけがそれを実行できるようにすることにのみ興味 がありますか?


4
Javaには優れたオンラインドキュメントがあります。andybが以下にリンクしているページは一例です。クラスまたはパッケージから利用できる正確な機能について質問があるときはいつでも、javadocsはグーグル「java6 <問題のパッケージまたはクラス>」と同じくらい簡単に見つけることができます。
jpm 2011

回答:


185

9
String.class.getSimpleName()-> String、ここでString.class.getName()-> java.lang.String
Peter Dietz

ありがとうございます。@ andybgetSimpleName()は、パッケージ名を除いたクラス名に簡単にアクセスできます。構文:object.getClass().getSimpleName() サンプルコード
Abhijeet 2016

静的文字列変数に割り当てる方法。それはアンドロイドスタジオでエラーを示しています。
MohanRaj S 2018

内部クラスでは機能しません:これにより、パッケージだけでなく、囲んでいるクラスの名前が削除されます。
toolforger

9

以下の両方の方法で問題なく動作します。

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

以下のように出力します。

クラス名は次のとおりです:package.Student

単純なクラス名は次のとおりです。学生


7

またはプログラムで

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

1
フレームワークからgetSimpleName()を使用できないため、これは役に立ちました... Tq
Imposter

1
また、プログラムによるアプローチでは、匿名クラスに対して適切な結果が得られます。
Hollis Waite

@Imposter Java 1.5より前のものを使用していますか?
ステルスラビ2014年

.が見つからない場合に対処する必要があります。
eckes

@eckesドットが見つからない場合、結果は-1になります。1を追加すると、インデックス0から始まる部分文字列が得られます。これはまさにこの場合に必要なものです。(でテストしたところint[]、結果は"[I"。)
toolforger20年

4

クラス名を使用してログを印刷するには、次の簡単な手法を使用できます。

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

メソッドで次の変数値をチェックする必要があるとすると、次のようにログを使用できます。

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

この行の重要性は、クラス名とともにメソッド名を確認できることです。このタイプのログを書き込むため。

書き込み: -logeとEnter。

コンソールに印刷されます

E/MainActivity: printVariable:

2

Social.class.getSimpleName()

getSimpleName():ソースコードで指定された基になるクラスの単純な名前を返します。基になるクラスが匿名の場合、空の文字列を返します。配列の単純な名前は、「[]」が追加されたコンポーネントタイプの単純な名前です。特に、コンポーネントタイプが匿名の配列の単純な名前は「[]」です。


1

オブジェクトプロパティにアクセスするGroovyの方法は次のとおりです。

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

-2

パスの代わりに単純な名前を取得します。

String onlyClassName =  this.getLocalClassName(); 

onCreateで上記のメソッドを呼び出す


不完全な解決策。
PLG

メソッドのソースを指定しないと、OPはそれを使用できません。
eckes
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.