자바 reflection 예제
이 자습서에서는 Java Reflection API를 다루었으며 컴파일 시간별 내부 에 대한 사전 지식 없이 런타임에 클래스, 인터페이스, 필드 및 메서드를 검사하는 데 사용하는 방법을 살펴보았습니다. 이 추적에서는 클래스, 필드, 메서드 및 생성자에 액세스하고 조작하기 위한 리플렉션의 일반적인 용도를 다룹니다. 각 단원에서는 코드 예제, 팁 및 문제 해결 정보가 포함되어 있습니다. Array 클래스는 인스턴스화할 수 없으며 정적 메서드를 내보내기하여 기본 또는 클래스 구성 요소 형식이 있는 Java 배열을 만들고 배열 구성 요소 값을 가져옵니다. 예를 들어 모든 클래스 내부를 볼 수 있는 코드 분석기를 작성하라는 지시를 받습니다. 그리고 모든 개인 방법을 나열하면 반사만이 작업을 수행 할 수 있습니다. 일반적으로 컴파일 타임에 인스턴스화해야 하는 형식이나 호출해야 하는 메서드를 모를 때마다 반사가 필요하다고 합니다. Java에서 리플렉션 API의 장점 중 하나는 클래스의 개인 멤버도 조작할 수 있다는 것입니다. 그런 식으로 클래스를 만들 수 있습니까,그것은 반사, 수단에서 방패를 얻어야한다, 그 검사하고 응용 프로그램의 런타임 동작을 수정할 수 없습니다. (즉, 우리는 반사를 피할 수 있습니다). 이 트레일의 예제는 리플렉션 API를 실험하기 위해 설계되었습니다. 따라서 예외 처리는 프로덕션 코드에서 사용되는 것과 동일하지 않습니다. 특히 프로덕션 코드에서는 사용자에게 표시되는 스택 추적을 덤프하지 않는 것이 좋습니다.
우리는 또한 자바 리플렉션을 사용하여 모든 자바 클래스의 슈퍼 클래스를 얻을 수 있습니다. 생성자 개체에 newInstance() 메서드를 사용하여 클래스의 새 인스턴스를 인스턴스화할 수 있습니다. 컴파일 시간에 클래스 정보가 없을 때 리플렉션을 사용하므로 Object에 할당한 다음 리플렉션을 사용하여 해당 필드에 액세스하고 메서드를 호출할 수 있습니다. 이 시점부터는 자바 리플렉션을 사용하여 위의 클래스 와 인터페이스에 나타나는 java 개체의 측면을 검사합니다. 이후 버전에서는 테스트를 시작하는 명명 규칙이 주석 사용으로 대체되었지만 반사 사용이 훨씬 비슷합니다. 위의 예제에서는 해당 필드의 이름에만 관심이 있었지만 수행할 수 있는 작업이 훨씬 더 많으며 이후 섹션에서 이에 대한 추가 예제를 볼 수 있습니다. 그런 다음 리플렉션을 사용하여 개체 이름과 필드 이름을 검색합니다. 이 시점에서 이 데이터를 DB 테이블에 매핑하고 개체 필드 값을 적절한 DB 필드 이름에 할당할 수 있습니다.
자바 클래스에 적용하고 다양한 예제를 가지고, 리플렉션 API에 대한 확고한 그립을 얻기 위해, 우리는 먹는 인터페이스를 구현하는 추상적 인 동물 클래스를 만들 것입니다.