자바 반사를 사용하여 어떤 속성 (클래스, 메서드 또는 기타)을 변경하는 것이 가능합니까? ?Java 리플렉션 API를 사용하여 클래스 멤버를 변경할 수 있습니까?
-3
A
답변
3
예. 리플렉션을 사용하여 비공개 멤버를 편집 할 수도 있습니다. 일부 라이브러리 및 프레임 워크 (예 : Hibernate 및 Wicket)가이 작업을 수행합니다. 당신이 정말로 좋은 이유가 없다면 나는 이것을 스스로하는 것을 권장하지 않을 것입니다.
import java.lang.reflect.Field;
class Something {
private String name = "Hello";
public void printName() {
System.out.println(name);
}
}
public class Example {
public static void main(String[] args) throws Exception {
Something s = new Something();
s.printName();
Field field = s.getClass().getDeclaredField("name");
field.setAccessible(true);
field.set(s, "Goodbye");
s.printName();
}
}
+0
Thnkx ...을 보았습니까? 비록 바보 같은 qstn 이었지만 ... 샘플을 넣으려면 jus tryin이었습니다. 게시물 : P –
2
반성과 함께 직접 작업하지 않고도이 작업을 수행 할 수있는 BeanUtils를 살펴보십시오. 훨씬 쉽고 덜 장황 : 예제와 함께 http://commons.apache.org/beanutils/
당신이 정말로 반사와 손이 더러운 싶어하지 않는 한, 내가 BeanUtils 같은 추상화 계층에서 작동하도록 추천 할 것입니다.
관련 문제
- 1. 스칼라에서 Java 클래스 리플렉션
- 2. Python : 클래스 이름에서 클래스 멤버를 호출하는 리플렉션 사용
- 3. 클래스의 멤버를 변경할 수 없습니다.
- 4. java 클래스 멤버를 통해 반복 할 수 있습니까?
- 5. Java : 정적 중첩 클래스 및 리플렉션 : "$"vs "."
- 6. 포인터 멤버를 사용하여 클래스 전달
- 7. API를 사용하여 매장 블로그에 대한 날짜를 변경할 수 있습니까?
- 8. Shopify API를 사용하여 주문을 어떻게 변경할 수 있습니까?
- 9. 타임 라인 배너 - API를 사용하여 변경할 수 있습니까?
- 10. CLASS 비공개 프라이버시 데이터 멤버를 변경할 수 있습니까?
- 11. java 기본 클래스 매개 변수를 변경할 수 있습니까?
- 12. 자바 런타임 클래스 리플렉션
- 13. 제네릭 클래스 멤버를 비교하는 방법 Java
- 14. 이 Java GUI API를 사용하여 어떻게 그릴 수 있습니까?
- 15. 자바 리플렉션, 클래스 객체
- 16. Java 애플릿의 배경색을 어떻게 변경할 수 있습니까?
- 17. 내부 클래스 캐스팅을 사용하여 Java 클래스 프록시하기
- 18. Java Generics 및 리플렉션!
- 19. API를 통해 Google 그룹의 이메일 주소를 변경할 수 있습니까?
- 20. Instrumentation API는 구조를 포함하여 클래스를 완전히 리플렉션 할 수 있습니까?
- 21. Coderush Express를 사용하여 클래스 멤버를 재정렬하는 방법
- 22. 리플렉션 Java 용 lib : 패키지의 모든 클래스 검색
- 23. 계산 또는 생성 된 멤버를 변경할 수 없습니다.
- 24. 클래스 멤버를 반복하는 방법은 무엇입니까?
- 25. 상속 : 기본 클래스 데이터 멤버를 재정의 할 수 있습니까?
- 26. JNI 콜백 함수가 클래스 멤버를 사용할 수 있습니까?
- 27. 어떻게 UML로 Map 클래스 멤버를 나타낼 수 있습니까?
- 28. Typedef 함수 포인터가 클래스 멤버를 가리킬 수 있습니까?
- 29. 리플렉션을 사용하여 Java 클래스 수퍼 클래스 변경
- 30. 리플렉션 : 자동 테스트를위한 클래스 걷기
왜 Google이 없습니까? –
심지어 [웹] (http://docs.oracle.com/javase/tutorial/reflect/) – radimpe