この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 13709|答える: 0

[出典] Javaでクラス名を手に入れる3つの方法!

[リンクをコピー]
掲載地 2019/04/02 17:24:12 | | |
クラス名を得る方法
Javaでクラス名を取得する主な方法は3つあります:

getName()
リターンは仮想マシン内のクラス名表現です。

getCanonicalName()
返されるのは、より理解しやすいクラス名表現です。

getSimpleName()
戻されたのはクラスの略称です。

違いは何ですか?
主な違いを見るために例を挙げてみましょう。

プログラムは以下の結果を出力します。

メソッド名クラス名
getName com.test.TestClass
getCanonicalName com.test.TestClass
getSimpleName TestClass

getName com.test.TestClass$TestInnerClass
getCanonicalName com.test.TestClass.TestInnerClass
getSimpleName TestInnerClass

getName [Lcom.test.TestClass$TestInnerClass;
getCanonicalName com.test.TestClass.TestInnerClass[]
getSimpleName TestInnerClass[]
[lcom.test.TestClass$TestInnerClass; 説明する価値があります。

これはJNIフィールドディスクリプタ(JavaNative Interface Field Descriptors)と呼ばれる関数のリターン値とパラメータのエンコーディングです。

[ は配列を表し、1は一次元配列を表します。例えば[[ は二次元配列を表します。 Lはクラス記述子の後、最後に; クラス名の終わりを示します。

結論

1. 上記の結果から、getName() と getCanonicalName() は通常のクラス名を取得する際には違いがありませんが、内部クラスと配列クラスの取得には違いがあることがわかります。

2. getSimpleName() は通常のクラス名や内部クラス名を取得する際には変わりませんが、配列クラスを取得する場合は違いがあります。





先の:Spring bootでは、JPAの永続リスナーが追加、削除、修正を傍受します
次に:JavaはObjectプロパティ型、プロパティ名、プロパティ値を取得します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com