JAva反射メカニズム学習(一):Classクラスのインスタンス化

1486 ワード

まずSUserクラスを定義し、後でテストするのに便利です.コードは次のとおりです.
package com.wjl.reflect;

public class SUser {
	private String userName; 
	private String passWord;
	
	public SUser(){//      
	}
	public SUser(String userName) {
		this.userName = userName;
	}
	public SUser(String userName, String passWord) {
		this.userName = userName;
		this.passWord = passWord;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassWord() {
		return passWord;
	}
	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
	@Override
	public String toString() {
		return "   :"+userName+",  :"+passWord;
	}
}

反射といえば、まずclassクラスについてお話ししますが、具体的な操作説明はヘルプドキュメントではっきり言っていますので、ここでは省略します.classをインスタンス化する3つの方法について話しましょう.
package com.wjl.reflect;

//  :   Class      
public class GetClassInstanceDemo01 {

	public static void main(String[] args) {
		//   Class 
		Class> c1 = null;
		Class> c2 = null;
		Class> c3 = null;
		//1、  forName(   )
		try{
			c1 = Class.forName("com.wjl.reflect.SUser");//  +  
		}catch(ClassNotFoundException e){
			e.printStackTrace();
		}
		//2、  object        
		c2 = new SUser().getClass();
		
		//3、   .class
		c3 = SUser.class;
		
		System.out.println("   1:"+c1.getName());
		System.out.println("   2:"+c2.getName());
		System.out.println("   3:"+c3.getName());
	}
}