본문 바로가기
[android] Parcelable vs Serializable android, Parcelable vs. Serializable Serializable 은 Java 만 아는 사람이라면 쉽게 알 수 있는 serialization 방법.그냥 Serializable 을 implementation 만 해주면, serialize 가 필요한 순간에 알아서 serialze 해주는 편리한 marker interface. 그러나, mobile 시대가 강림하면서 등장한 유망한 어린이(?) 가 있으니 그는 바로 Parcelable.이 녀석은 IPC ( Inter Process Communication ) 에 최적화된 녀석으로.Serialize 보다 속도가 빠르다.물론, 해야 하는 일은 Serialize 보다 훨씬 많다.직접 serialize 되어야 할 녀석들을 선별해서 그것을 쓰고 읽.. 2014. 2. 15.
[Java] Reflection Tutorial - Dynamic Proxies Java, Reflection Tutorial - Dynamic Proxies reflection 을 이용하여 runtime에 interface 를 구현할 수도 있다.다시 말해 proxy를 사용하기 위해서는 구현하고자 하는 interface가 꼭 있어야 한다. 보통 interface 를 구현하는 방법은 다음과 같이 2가지가 있다. public class FooImpl implmenets FooInterface{@Overridepublic void test(){// do sth...}} new FooImpl{@Overridepublic void test(){// do sth...}} proxy 는 자주 사용되지는 않지만 특별한 경우에 사용하는 세번째 방법이라고 보면 된다. FooInterface foo =.. 2014. 1. 3.
[Java] Reflection Tutorial - Array Java, Reflection Tutorial - Array java.lang.reflect.Array array 에 대한 reflection 은 java.lang.reflect.Array 를 통해서 이루어진다. array 의 util 함수들을 가지고 있는 java.util.Arrays 와 착각하지 말자. Creating Arrays int[] intArray = (int[]) Array.newInstance( int.class, 3 ); Accessing Arrays int[] intArray = (int[]) Array.newInstance( int.class, 3 ); Array.set( intArray, 0, 123 );int a = Array.get( intArray, 0 ); Obtaining.. 2013. 12. 30.
[Java] Reflection Tutorial - Generics Java, Reflection Tutorial - Generics 일반적으로 Generics 정보는 runtime 에 사라진다고 알고 있지만 꼭 그렇지만은 않다. The Generics Reflection Rule of Thumb 일반적으로 List 와 같은 녀석들은 어떤 Generic 이 쓰였는지 알기 어렵다.하지만 parameterized 된 method 나 field 를 조사해보면,어떤 generic 이 사용되었는지 알 수 있다. Generic Method Return Types Method method = TestClass.class.getMethod( "getStringList", null );Type returnType = method.getGenericReturnType(); if ( ret.. 2013. 12. 27.
[Java] Reflection Tutorial - Annotations. [Java] Reflection Tutorial - Annotations. What are Java Annotations Java5 에 소개된 기능으로, meta data 를 코드형태로 담을 수 있고, runtime 에 이 meta data 에 접근할 수 있다. pre-compiler 가 코드를 conversion 할 때 사용되기도 한다. Annotation 은 interface 형태이다. @Retention( RetentionPolicy.RUNTIME );@Target( ElementType.TYPE )public @interface TestAnnotation{public String name();public String value();} @TestAnnotation(name="variable", va.. 2013. 12. 23.
[Java] Reflection Tutorial - Accessing Private Field, Private Method 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 을 .. 2013. 12. 17.
[PHP] Tutorial, 객체 지향 PHP, Tutorial, 객체 지향 =====PHP 에서 클래스, 속성, 연산 만들기 class classname{ var $attribute1; function operation1( $param1 ){ }} =====생성자 __construct() 라는 이름을 가진다. =====소멸자 __destruct() 라는 이름을 가진다. =====생성 new 를 이용하여 생성한다. =====클래스 속성 사용하기 instance->attributeName 으로 접근한다. =====GET, SET 함수 __get, __set 함수를 가진다.해당 attribute 에 접근하면 자동으로 get, set 함수가 불리게 된다. =====private 와 public 으로 접근 제어하기 기본은 public. private.. 2013. 11. 15.
[Java] Reflection Tutorial - Constructor Java, Reflection Tutorial - Constructor Obtaining Constructor Objects Constructor[] constructors = aClass.getConstructors(); public Constructor 들만 가지고 온다. 만약 parameter 들을 확실히 알고 있다면, 다음과 같이 한개의 constructor 를 가져올 수 있다. Constructor constructor = aClass.getConstructor( new Class[]{ String.class} ); 만약 일치하는 constructor 가 없다면 NoSuchMethodException 이 return 된다. Constructor Parameters Class[] parameter.. 2013. 11. 15.
[Java] Reflection Tutorial - Class [Java] Reflection Tutorial - Class Java Reflection 은 class, interface, field, 그리고 method 를 runtime 에 조사할 수 있도록 해준다. 새로운 object 를 만들 수도 있고, method 를 호출할 수도 있다. script language 가 runtime 에 java 의 함수를 호출한다거나, database table 과 object 를 맞출 때 자주 사용한다. Class Class 로 부터 얻을 수 있는 정보들. Class NameClass Modifier ( public, private, synchronized... )Pakcage InfoSuper classImplemented InterfacesConstructorsMeth.. 2013. 11. 12.
반응형