자바 - 리플렉션

리플렉션 기능은 객체의 클래스, 메서드, 변수 및 기타 속성에 액세스하는 데 도움이 됩니다. 또한 클래스, 메소드, 속성 등의 정보와 이름, 매개변수 등의 주석을 가져오고 제어하고 관리하는 데 사용됩니다. 변수를 정의하고 "."를 입력하면 이미 이 작업을 수행합니다. IDE의 완성과 함께.

Student student = new Student()
student.
// IDE offers us features such as methods or variables here


우선, 간단한 Student 클래스

  public class Student {
  public final static int id = 4;
  private String name;
  private int age;
  public Metallica () {
    this ("James", 54);
  }

  //... other getters and setter
}


여기 리플렉션이 무엇인지 테스트하는 테스트 클래스가 있습니다.

Class<?> myClass = Class.forName("com.org.Student");
Object obj = myClass.newInstance();

// varargs can be used for getDeclaredConstructor 
Constructor<?> cons =  myClass.getDeclaredConstructor(String.class, Integer.TYPE);

for (Field field: myClass.getDeclaredFields())
(
   System.out.println("Field:" + field.getName());
)

Field:id
Field:name
Field:age

getter 및 setter 이외의 개인 필드에 대한 액세스는 없지만 해당 변수의 이름을 얻었습니다. 💡 따라서 테스트 및 디버그에 더 유용합니다.

같은 방식으로 수정자를 얻을 수 있습니다 ...

 int modifier = cons.getModifiers();
 System.out.println("Modifer: " + Modifier.toString(modifier));

Modifier: public
학생 클래스가 공개로 구현되었기 때문입니다.

또한 invoke()를 통해 public, private 및 static 메서드를 호출하여 필요한 정보를 얻을 수 있습니다.

좋은 웹페이지 즐겨찾기