자바 반사
JAVA 리플렉션 메커니즘은 실행 상태에서 모든 클래스에 대해 이 클래스의 모든 속성과 메서드를 알 수 있으며 동적으로 얻은 정보와 동적 호출을 호출할 수 있다는 것입니다. 객체의 메소드 중 하나를 Java 언어의 반사 메커니즘이라고 합니다.
다음과 같이 코드 코드를 복사합니다.
패키지 C_20130313;
import java.lang.reflect.Method;
클래스 사용자
{
개인 문자열 이름;
공개 사용자(){}
공개 사용자(문자열 이름)
{
this.name=이름;
}
public void say()//매개변수가 없는 메서드
{
System.out.println("안녕하세요 여러분. 제 이름은 "+name+"입니다!");
}
public void say(String str)//매개변수가 있는 메서드
{
System.out.println("안녕하세요 여러분. 제 이름은 "+name+"입니다! "+str+", 저는 매개변수가 있는 메소드입니다!");
}
}
/**
* @저자 LXA
* 반사의 가장 간단한 예
*/
공개 수업 반영
{
public static void main(String[] args)에서 예외가 발생했습니다.
{
Class c=Class.forName("C_20130313_reflection.User");//리플렉션을 통해 해당 클래스 찾기
Method m1=c.getMethod("say");//매개변수 없이 say라는 메소드를 찾습니다.
Method m2=c.getMethod("say",String.class);//String 유형 매개변수가 있는 say라는 메서드를 찾습니다.
m1.invoke(c.newInstance());//newInstance()가 매개변수 없는 생성자를 호출한다는 점에 유의하세요! ! !
m2.invoke(new User("Liu Xian'an"),"Haha");//매개변수화된 생성 방법을 통해 객체 인스턴스화
}
}