「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