「Java」Class.forName()関数でインスタンスを生成する

2020年10月15日

説明
1.public static Class<?> forName(String className)throws ClassNotFoundException
指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Classオブジェクトを返します。
2.public T newInstance() throws InstantiationException,IllegalAccessException
このClassオブジェクトが表すクラスの新しいインスタンスを作成します。
Javaコード

package com.arkgame.study;

public class ClassForNameDemo {

      public static void main(String[] args) {
            try {
                  // Classオブジェクト
                  Class<?> cft = Class.forName("java.util.HashMap");
                  // 新しいインスタンス
                  Object obj = cft.newInstance();
                  System.out.println("単純名(simpleName): " + obj.getClass().getSimpleName());
                  System.out.println("クラスの正規名(canonicalName): " + obj.getClass().getCanonicalName());
                  System.out.println("クラスの名前(Name): " + obj.getClass().getName());
            } catch (ClassNotFoundException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            } catch (InstantiationException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            } catch (IllegalAccessException e) {
                  // TODO 自動生成された catch ブロック
                  e.printStackTrace();
            }

      }

}

実行結果
単純名(simpleName): HashMap
クラスの正規名(canonicalName): java.util.HashMap
クラスの名前(Name): java.util.HashMap

Java

Posted by arkgame