반응형
Java, Reflection Tutorial - Accessing Private Field, Private Method |
Reflection 으로 private field, method 들에도 접근할 수 있다.
private 에 대한 접근은 unit test 에서 유용하게 쓰인다.
VM 에 따라서 권한이 주어져야 접근 가능한 경우도 있다.
Accessing Private Fields
TestClass testClass = new TestClass();
Field privateField = testClass.getDeclaredField( String name );
privateField.setAccessible( true );
privateField.get( testClass );
setAccessible 을 통해 private, protected, package level 모두 접근 가능.
이것을 썼다고 해서 normal code 에서도 접근 가능한 것은 아니다. 오직 reflection 을 이용했을 때만 setAccessible 이 효력을 발휘한다.
Accessing Private Methods
Method method = TestObject.class.getDeclaredMethod( "methodName", params );
Method.setAccessible( true );
method.invoke( testObject, null );
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] Up Navigation 설정하기. (2) | 2013.12.19 |
---|---|
[android] software button height (0) | 2013.12.17 |
[android] 런타임에 다른 apk 소스 ( dex 파일 ) 읽어오기. (0) | 2013.12.16 |
[android] OutOfMemoryError : bitmap size exceeds VM budget 을 해결해보자!!! (2) | 2013.12.13 |
[android] ListView HeaderView ListItem 으로서 click 안 되도록 하기. (0) | 2013.12.11 |
댓글