JAvaにおける反射操作の構築方法

1762 ワード

JAvaにおける反射操作の構築方法     
       
取得したコンストラクションからオブジェクトを作成するには
手順:
1.Classオブジェクトを取得
2取得構造
3.オブジェクトを構築することでインスタンス化されたオブジェクトを得る
package com.itheima_01;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

/*
 *	             
 *			Constructor>[] getConstructors()  
 *			Constructor getConstructor(Class>... parameterTypes) 
 *			 T newInstance()   
 *
 *Constructor:
 *	 	T newInstance(Object... initargs)  
 */
public class ReflectDemo2 {
	public static void main(String[] args) throws ReflectiveOperationException {
		Class clazz = Class.forName("com.itheima_01.Student");
		
		//method(clazz);
		//Constructor getConstructor(Class>... parameterTypes) 
		//method2(clazz);
		//method3(clazz);
		
		Object obj = clazz.newInstance();
		System.out.println(obj);
		 
		
			
	}

	private static void method3(Class clazz)
			throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
		Constructor c = clazz.getConstructor(String.class,int.class);//      ,  1   String,  2   int
		System.out.println(c);
		Object obj = c.newInstance("lisi",30);
		System.out.println(obj);
	}

	private static void method2(Class clazz)
			throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
		Constructor c = clazz.getConstructor();//      
		System.out.println(c);
		Object obj = c.newInstance();
		System.out.println(obj);
	}

	private static void method(Class clazz) {
		//Constructor>[] getConstructors() :    public        
		Constructor[] cs = clazz.getConstructors();
		for (int i = 0; i < cs.length; i++) {
			System.out.println(cs[i]);
		}
	}
	
}