안드로이드 reflection 예제


java.lang.Class는 모든 반사 작업의 진입점입니다. 모든 개체 유형에 대해 JVM은 개체의 런타임 속성을 검사하고 새 개체를 만들고 메서드를 호출하고 개체 필드를 가져옵니다/설정하는 메서드를 제공하는 java.lang.Class의 변경할 수 없는 인스턴스를 인스턴스화합니다. 이 프로젝트의 코드에 액세스하려면 https://github.com/rajas47ashtikar92/reflection-sample-app 여기가 사용되는 위치: http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/ContactAccessor.html 리플렉션을 사용하여 개체에서 필드의 값을 얻고 설정할 수 있습니다. 리플렉션은 Java 개발자가 런타임에 프로그래밍 방식으로 패키지 및 API를 탐색하는 데 사용할 수 있는 강력한 도구입니다. 리플렉션 작업은 비용이 많이 들지만 개발자는 작업을 수행하는 데 필수적인 유연성을 제공합니다. Android 개발자는 런타임시 특정 클래스, 인터페이스, 메서드 및 필드의 가용성을 테스트하기 위해 이러한 간단한 리플렉션 기술을 자주 사용하여 다양한 버전을 지원할 수 있습니다. 그 이유를 반영합니다. 이를 방지하기 위해 생성자에서 예외를 throw할 수 있습니다. 이것은 사소한 예이지만 이미 많은 문제를 보여줍니다.

아래 예제에서는 리플렉션을 사용하여 HashMap의 put() 메서드를 사용하고 있습니다. 또한 이 예제에서는 매개 변수 형식, 메서드 수정자 및 메서드의 반환 형식을 얻는 방법도 보여 주며 이 예제에서는 메서드를 반환합니다. Eclipse(지원되는 버전 포함)와 Android SDK를 설치하는 방법에 대한 자세한 내용은 Android 개발자 웹 사이트를 참조하십시오. 리플렉션을 사용하는 경우 항상 성능 오버헤드가 있습니다. 최신 VM이 문제를 최소화하는 데 훨씬 낫다고 생각하더라도 이를 완화하지는 않습니다. 그들은 단지 덜 고통스럽습니다. 개인 필드와 메서드는 클래스 외부에서 액세스할 수 없지만 리플렉션을 사용하면 필드 수정자에 대한 java 액세스 검사를 해제하여 개인 필드 값을 얻/설정할 수 있습니다. object의 클래스 표현에 getConstructor() 메서드를 사용하여 특정 공용 생성기를 얻을 수 있습니다. 아래 예제에서는 위에서 정의 된 ConcreteClass의 생성자와 HashMap의 인수 없는 생성기를 얻는 방법을 보여 주며 있습니다.

Contact Info

Citizens for Yarbrough

1001 S. 17th Ave

Maywood, IL

Phone : (708) 344-7062

Email :