「Java8」リフレクション(reflection)でgetClassを使ってクラスの情報を取得する
環境
Windows 10 64bit
Eclipse 2019
Java8
書式
クラス名 インスタンスの変数 = new クラス名();
Class<?> 変数 = インスタンスの変数.getClass();
インスタンスの変数とgetClassメソッドで、クラス情報のインスタンス(Classクラス)を取得します。
getSimpleName():クラス名を表示します
getPackage():パッケージ名を表示します
getName():、パッケージ名+クラス名(FQCN)を表示します
使用例
package com.arkgame.testinfo;
public class TestUser {
      public static void main(String[] args) {
            //クラスをインスタンス化します
            User uu = new User();
            
            //Classクラスのインスタンスを取得
            Class<?> cft =uu.getClass();
            
            System.out.println("クラス名: " + cft.getSimpleName());
            System.out.println("パッケージ名: " + cft.getPackage());
            System.out.println("パッケージ名 クラス名(FQCN): " + cft.getName());
      }
}
//クラスUserの定義
class User {
      private int age = 12;
      private String username = "yamada";
}
実行結果
クラス名: User
パッケージ名: package com.arkgame.testinfo
パッケージ名 クラス名(FQCN): com.arkgame.testinfo.User