Java 리플렉션 메커니즘의 원리: 1. 모든 클래스에 대해 이 클래스의 모든 속성과 메서드를 알 수 있으며, 모든 개체에 대해 해당 메서드를 호출할 수 있습니다. 2. 모든 것이 개체이고 클래스도 마찬가지입니다. 3. [Animal.class]가 하드디스크에 있을 때, 메모리에 로드되면 객체로 간주될 수 있습니다.
Java 리플렉션 메커니즘의 원리:
1. 리플렉션 메커니즘의 개념:
은 실행 상태에서 모든 클래스에 대해 이 클래스의 모든 속성과 메서드를 알 수 있음을 의미합니다. 모든 클래스에 대해 객체는 해당 메소드 중 하나를 호출할 수 있습니다. 동적으로 정보를 얻고 객체 메소드를 동적으로 호출하는 기능을 Java 언어의 반사 메커니즘이라고 합니다.
2. 반사 메커니즘의 적용:
동적 에이전트 생성 슬라이싱 프로그래밍(메서드 호출 전후에 스택 프레임 추가)
3. 반사 메커니즘의 원리:
1 우선, 명확한 개념: 모든 것이 객체입니다. 클래스도 객체입니다.
2. 그러면 클래스의 내용을 알아보세요: 수정자 생성자 필드 방법.3. 둘째, 로딩을 이해하세요: Animal.class가 하드 디스크에 있을 때 메모리에 로드되면 파일이 될 수 있습니다. java.lang이라는 객체로 간주됩니다. 클래스의 객체프로그램을 실행하면 인스턴스화 중에 Animal.class 객체가 생성됩니다. 이 두 객체의 차이점은 무엇인가요?아래와 같이 Animal.class 위의 객체는 java.lang.class의 객체입니다. 객체는 Animal.class아래와 같이 Animal.class 인스턴스화 객체의 멤버 변수는 fur color = red입니다. 메모리에 로드되면 fur color = null,
Java.lang의 메소드입니다. .class, 코트 색상은 Field의 속성 값이며 Animal, Modifiers의 모든 메소드, 멤버 변수 및 생성자는 java.lang.class의 표준에 따라 작성됩니다. 그렇지 않으면 컴파일 중에 오류가 보고됩니다
4. 방사선 메커니즘의 간단한 예제 코드
public class _14_ReflectTest07 { public static void main(String[] args) throws Exception{ //1.获取类 Class c = Class.forName("_12_CustomerService"); //获取某个特定的方法 //通过:方法名+形参列表 Method m = c.getDeclaredMethod("login",String.class,String.class); //通过反射机制执行login方法. Object o = c.newInstance(); //调用o对象的m方法,传递"admin""123"参数,方法的执行结果是retValue Object retValue = m.invoke(o, "admin","123"); System.out.println(retValue); //true } } public class _12_CustomerService { //登录 public boolean login(String name,String pwd){ if("admin".equals(name) && "123".equals(pwd)){ return true; } return false; } //退出 public void logout(){ System.out.println("系统已安全退出!"); } }
java 기본 튜토리얼
위 내용은 Java 반사 메커니즘의 원리는 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!