java 반사 메커니즘 문맹 퇴치
7895 단어 안드로이드 학습 노트
반사 메커니즘은 무엇입니까
반사 메커니즘은 운행 상태에서 임의의 클래스에 대해 이 클래스의 모든 속성과 방법을 알 수 있다.임의의 대상에 대해 임의의 방법과 속성을 호출할 수 있다.이런 동적으로 얻은 정보와 동적 호출 대상의 방법의 기능을 자바 언어의 반사 메커니즘이라고 한다.
**
반사 메커니즘은 무엇을 할 수 있습니까
**반사 메커니즘은 주로 다음과 같은 기능을 제공합니다.
반사 메커니즘 획득 클래스에는 세 가지 방법이 있는데, 우리는 Employee 유형을 얻는다
// :
Classc1 = Class.forName("Employee");
// :
//java class .
Classc2 = Employee.class;
// :
//java java getClass
Employeee = new Employee();
Classc3 = e.getClass(); //c3 (e Employee)
획득 방법, 구조 방법, 더 이상 상세하게 설명하지 않고 키워드만 보십시오.
다음은 예를 들면 다음과 같습니다.
package com.app;
public class T1 {
public static void main(String[] args) {
try {
//
Class> class1 = Class.forName("com.app.Person");;
// : new
Object object = class1.newInstance() ;
//
Person person = (Person) object ;
person.setId( "100");
person.setName( "jack") ;
System.out.println( "id: " + person.getId() + " name: " + person.getName() );
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
실행 결과:
id: 100 name: jack
인스턴스 2:
package com.app;
import java.lang.reflect.Field;
public class T1 {
public static void main(String[] args) {
try {
//
Class> class1 = Class.forName("com.app.Person");
//
Object person = class1.newInstance();
// id
Field idField = class1.getDeclaredField( "id" ) ;
// setAccessible , true false
// JDK . setAccessible(true)
idField.setAccessible( true );
// id
idField.set( person , "100") ;
// person
System.out.println( idField.get( person ));
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace() ;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
실행 결과
100
또한Class클래스는 어떤 클래스의 구조 방법을 얻기 위해 네 가지public 방법을 제공합니다.
Constructor getConstructor(Class[] params) , public
Constructor getConstructors() public
Constructor getDeclaredConstructor(Class[] params) , ( public public )
Constructor getDeclaredConstructors() ( public public )
네 가지 구성원 획득 방법
Method getMethod(String name, Class[] params) , public
Method[] getMethods() public
Method getDeclaredMethod(String name, Class[] params) , ( public public )
Method[] getDeclaredMethods() ( public public )
네 가지 구성원 속성을 얻는 방법
Field getField(String name) , public
Field[] getFields() public
Field getDeclaredField(String name) , ( public public )
Field[] getDelcaredField() ( public public )
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 반사 메커니즘 문맹 퇴치반사 메커니즘은 운행 상태에서 임의의 클래스에 대해 이 클래스의 모든 속성과 방법을 알 수 있다.임의의 대상에 대해 임의의 방법과 속성을 호출할 수 있다.이런 동적으로 얻은 정보와 동적 호출 대상의 방법의 기능을 자...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.