JAva反射——構造関数

1914 ワード

反射構造関数を取得して呼び出します.いくらコードが入らないと言っても速い.私はコードをブロックのコード領域に分けて、1つの注釈の他のものを見る必要があります.テストしたことがあります.
package FanShe;

import java.lang.reflect.*;
class Student {
	
	//---------------    -------------------
	//(       )
	Student(String str){
		System.out.println("(  )      s = " + str);
	}
	
	//      
	public Student(){
		System.out.println("     、         。。。");
	}
	
	//          
	public Student(char name){
		System.out.println("  :" + name);
	}
	
	//          
	public Student(String name ,int age){
		System.out.println("  :"+name+"  :"+ age);//         ,    。
	}
	
	//        
	protected Student(boolean n){
		System.out.println("         n = " + n);
	}
	
	//      
	private Student(int age){
		System.out.println("            :"+ age);
	}
 
}


public class ConstructorDemo {


	public static void main(String[] args) throws  Exception {
//		Class c=new Student().getClass();
		Class c=Student.class;
//		Class c=Class.forName("FanShe.Contructor");
		//          Class  
		
		
		
		/*System.out.println("*****        *****");
		Constructor[] cArr=c.getConstructors();
		for(Constructor con:cArr) {
			System.out.println(cor);
		}*/
		
		
		/*System.out.println("*****        *****");
		Constructor[] cArr=c.getDeclaredConstructors();
		for(Constructor con:cArr) {
			System.out.println(con);
		}*/
		
		
		
		/*System.out.println("*****          *****");
		Constructor con=c.getConstructor();
		System.out.println(con);*/
		
		
		/*System.out.println("*****          *****");
		Constructor con=c.getDeclaredConstructor(String.class);
		System.out.println(con);*/
		
		
		/*System.out.println("*****    ,    *****");
		Constructor con=c.getDeclaredConstructor(String.class);
		con.setAccessible(true);//    
		Object obj=con.newInstance("   ");//new Student(" ")*/
	}
}