728x90
반응형
SMALL
객체를 복사하는 방법은 여러 방법이 있다.
Gson 을 이용하여 복사할 수도 있는데 이때 복사하고 싶지 않은 변수에 대해서는 @Expose 어노테이션을 사용한다.
그런데 정상적으로 동작하지 않아서 예외처리 하는 전략클래스를 만들어 사용 했더니.. 잘된다.
/**
* Gson serialize, deserialize 시 @Expose annotation 이 있는 Field 제외 전략 클래스
* @author yhkim
*
*/
public class GsonSkipExposeAnnotationStrategy implements ExclusionStrategy {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return (null != f.getAnnotation(Expose.class));
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
}
GsonSkipExposeAnnotationStrategy exclutions = new GsonSkipExposeAnnotationStrategy();
Gson gson = new GsonBuilder().addSerializationExclusionStrategy(exclutions).addDeserializationExclusionStrategy(exclutions).create();
DocLayout copyObj = gson.fromJson(gson.toJson(this), DocLayout.class);
잘된다.
728x90
반응형
LIST
'IT > JAVA' 카테고리의 다른 글
Cannot deserialize value of type `java.time.LocalDateTime` from String.... `0000-00-00 00:00:00` 처리 방법 (3) | 2020.06.11 |
---|---|
Java 13 특징 (feat. Java 10 특징) (0) | 2019.12.20 |
Rest API QueryString Parsing for MyBatis (0) | 2019.09.24 |
Gson LocalDateTime 처리(BEGIN_OBJECT but was STRING) (2) | 2019.09.18 |
ConcurrentModificationException (0) | 2019.05.21 |