깊이 이해 반사 메커니즘
2185 단어 JAVA 진급
자바 의 반사 체 제 는 프로그램 이 실 행 된 상태 에서 프로그램의 구조 나 변수 유형 을 바 꿀 수 있 도록 하 는 것 을 말한다.다시 말 하면 자바 가 실행 할 때 이름 을 알 수 있 는 class 류 를 불 러 와 구조 함수, 구성원 변수 와 방법 을 얻 을 수 있다 는 것 이다.
2. 자바 반사 메커니즘 을 통 해 실례 화 하 는 방법:
1) 해당 대상 의 클래스 획득:
import java.lang.reflect.Field;
import java.util.List;
/**
* Created by ykanghe on 12/31/16.
*/
public class Reflection {
private String name = "tom";
private String age;
private List list;
public static void main(String[] arg) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
Class relectClass = Reflection.class;
try {
//--------------- ----------------//
// getClass
Reflection instance = new Reflection();
instance.getClass();
// .class
Class relectInstance = Reflection.class;
// Class forname
Class> relect = Class.forName("Reflection");
//-------------------- getConstructor -------------//
/**
Constructor getConstructor(Class[] params) -- ,
Constructor[] getConstructors() --
Constructor getDeclaredConstructor(Class[] params) -- ( )
Constructor[] getDeclaredConstructors() -- ( )
*/
/*----------- :getDeclaredConstructor(Class[] params) getDeclaredConstructors(),
, , ,
*/
/* Field , name , DeclaredField
;
*/
Field names = relect.getDeclaredField("name");
Object o = relect.newInstance();
//
names.set(o, "lilei");
System.out.print(o.getClass().getName() + "|" + names.get(o));
} catch (Exception e) {
System.out.print(e);
}
}
}