HomeJava技術項目 クラス・メソッド動的実行

クラス・メソッド動的実行

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class TestInvoke {

	public static void main(String args[]) {
		
		try {
			// class 定義
			Class cls = Class.forName("test.TargetClass");

			// static メソッド生成
			Method getStr2 = cls.getMethod("getStr2", new Class[]{String.class});
			
			// instance 生成
			Constructor con = cls.getConstructor(new Class[]{String.class});
			Object obj = con.newInstance(new Object[]{"xyz"});
			
			// instance メソッド生成
			Method getStr1 = cls.getMethod("getStr1", new Class[]{});

			System.out.println("  staticメソッド実行:" + getStr2.invoke(cls, new Object[]{"abc"}));
			System.out.println("instanceメソッド実行:" + getStr1.invoke(obj, new Object[]{}));
			
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
}
public class TargetClass {

	private String str;
	
	// コンストラクタ
	public TargetClass(String str) {
		this.str = str;
	}

	// instance メソッド
	public String getStr1() {
		return this.str;
	}

	// static メソッド
	public static String getStr2(String str) {
		return str;
	}
}



ページトップへ

データベース

サーバ

Copyright (C) MadCap. All Rights Reserved.