Java 베이스-반사 메커니즘

반사
반사는 우리로 하여금 유연한 코드를 쉽게 만들 수 있게 한다. 이 코드들은 실행할 때 조립할 수 있으며, 구성 요소 간에 원본 코드 링크를 할 필요가 없다.반사는 우리가 작성하고 실행할 때 원본 코드에서 선택한 클래스 협업 코드가 아니라 JVM에 불러온 클래스의 내부 정보를 코드에 접근할 수 있도록 합니다.
반사 메커니즘 작용
  • 반번역:.class -> .java
  • 반사 메커니즘을 통해 자바 대상의 속성, 방법, 구조 방법에 접근한다
  • 반사적 사용
    반사 메커니즘 획득 클래스의 세 가지 방식
    
    Class c1 = Class.forName("com.webb.basis.reflect.Demo"); //  
    Class c2 = Demo.class;
    Class c3 = new Demo().getClass();
    객체 만들기: 클래스를 가져오면 newInstance () 를 사용하여 객체를 만듭니다.c1.newInstance(); // Demo 속성 가져오기
    
    //  
    Field[] fields = c1.getDeclaredFields();
    StringBuffer stringBuffer = new StringBuffer();
    stringBuffer.append(Modifier.toString(c1.getModifiers()) + " class " + c1.getSimpleName() + "{
    "); for (Field field : fields) { stringBuffer.append("\t"); stringBuffer.append(Modifier.toString(field.getModifiers()) + " "); stringBuffer.append(field.getType().getSimpleName() + " "); stringBuffer.append(field.getName() + ";
    "); } stringBuffer.append("}"); System.out.println(stringBuffer); // Field field = c1.getDeclaredField("name"); //
    획득 방법 및 구성 방법
    
     
    getDeclaredMethods()
    getReturnType()
    getParameterTypes()
    getDeclaredMethod()
    
     
    getDeclaredConstructors()
    getDeclaredConstructor()
    
    setAccessible(true);
    속성에 대한 접근 권한을 설정합니다. 클래스의 변수가private일 때 이 항목을 설정해야 합니다.
    이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!

    좋은 웹페이지 즐겨찾기