反射基礎之類實例創建

利用反射創建Class類對應的類實例對象

  1. Class對象的newInstance()方法,調用類無參構造器創建對象
  2. 調用Class對象的getConstructor(參數.class),返回相應的類構造器,再次調用構造器的newInstance(參數),構建對象
public class ClassDome {
	public static void main(String[] args) {
		/*
		 * 使用Class對象實例化類的實例對象,調用的是類的無參構造器
		 */
		Date test = null;
		
		try {
			Class<Date> dateClass = Date.class;
			test = (Date)dateClass.newInstance();
		} catch (Exception e) {
			e.printStackTrace();
		}

		 System.out.println(test);
		/*
		 * 調用帶參構造器實例化對象,先調用setConstructor(參數.class),返回構造器對象
		 * 調用構造器對象的newInstance方法,傳入相應的參數,調用相應的構造器,創建實例
		 */
		Integer integer = null;
		try {
			Class<?>cl = Class.forName("java.lang.Integer");
			Constructor<?> num = cl.getConstructor(int.class);
			integer = (Integer) num.newInstance(5);
			System.out.println(integer.intValue());
		} catch (Exception e) {
			e.printStackTrace();
		}	
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章