1, Class 객체는 멤버 변수를 얻을 수 있습니다 :
Class 클래스의 일반적인 방법 :
Person 클래스 만들기 :
패키지 pers.reflect.person; 공용 클래스 사람 { 개인 문자열 이름; 개인 INT의 시대; 공공 문자열 취미; 공공 문자열 높이; 보호 된 문자열 섹스; 문자열 주소; 공공 사람 () { } 공공 사람 (문자열 이름, INT의 나이) { 이 .name을 = 이름; 이 .age = 나이; } @Override 공공 문자열 toString () { 반환 " 인 [이름 = " + 이름 + " , 연령 =" + 나이 + " , 취미 = " + 취미 + " , 높이 = " + 높이 + " , 성별 = " + 성 + " , 주소 = " + 주소 + " ] " ; } 공공 문자열 getName () { 반환 이름; } 공공 무효 에서는 setName (문자열 이름) { 이 .name을 = 이름; } 공공 INT getAge () { 반환 시대; } 공공 무효 setAge ( INT의 연령) { 이 .age = 나이; } }
수입 java.lang.reflect.Field의; 수입 pers.reflect.person.Person; 공공 클래스 ReflectDemo { 공공 정적 무효 메인 (문자열 []에 인수), SecurityException가 슬로우 NoSuchFieldException, IllegalArgumentException가, 시 IllegalAccessException { 클래스 C = 사람을. 클래스 ; 체계. 밖으로 .println ( " getFields (),获取公共的成员变量: " ); 필드 [] 필드 = c.getFields (); 에 대한 {: (필드 필드 필드) 시스템. 밖으로 .println (필드); } . 시스템 OUT .println는 ( " getField ()는 지정된 공개 멤버 변수를 구하는 방법 " ) 필드 hobbyField = c.getField ( " 취미 " ) 시스템. OUT .println (hobbyField)를, 시스템. OUT .println ( " getDeclaredFields ()는 수식 관계없이 멤버 변수 모두를 얻는다. " ) 필드를 [] fields1 = c.getDeclaredFields () 대 (필드, 필드 : fields1) { . 시스템 OUT ; .println (필드) } . 시스템 OUT .println ("지정된 전용 멤버 변수하세요 " ) 필드, nameField = c.getDeclaredField ( " 연령 " ) 시스템. OUT .println합니다 (nameField를); } }
2, 필드 클래스 일반적인 방법 :
(1) 상기 리턴 변수의 타입 :
(2) 속성의 이름을 반환합니다 :