반응형

자바 8

jackson objeckMapper List 타입 역직렬화(deserialize) 분석

동일한 값을 반환하는 이름만 다른 getter는 어떻게 deserialize 될까? 자바에서 직렬화, 역직렬화 시, 많이(거의) 사용되는 jackson 라이브러리의 deseialize 처리에 관한 글이다. 예상하지 못한 결과가 발생해서 jackson 라이브러리 코드 구현부를 살펴보았다. 현상 위는 name, itemList 변수가 선언되어 있는 Store 클래스이다. 각 변수에 대한 getter는 lombok으로 정의되어 있다. 알 수 없는 프로퍼티를 무시하는 @JsonIgnoreProperties(ignoreUnknown = true) 어노테이션도 추가되어 있다. 그리고 name을 대문자로 반환하는 getUpperName, itemList를 반환하는 getDiscountedItemList가 정의되어 있..

개발 2023.07.16

자바 벨리데이터(validator)과 리플렉션(reflection)

validator는 null을 검사하지 않고 순서를 보장하지 않는다. 아래 클래스처럼 벨리데이터를 사용하던 중 의문이 든 내용이다. class User { @Size(min = 1, max = 50) @Pattern(regexp = "^[a-zA-Z]$") private String name; @Min(value = 18) private int age; @Min(value = 130) private int tall; public User(String name, int age, int tall) { this.name = name; this.age = age; this.tall = tall; } } - name에 null이 들어와도 에러가 발생하지 않는다. @size, @pattern 동작 안 함 - 클래스..

개발 2023.03.15

자바 배열 <-> 리스트 변환

1. 배열 -> 리스트 변환 배열 -> 리스트 변환 방법에는 크게 두가지 방법이 있다. 편한걸로 쓰면된다. 1) Arrays 유틸을 이용한 방법1234String[] strArray = {"a", "b", "c"};ArrayList strList = new ArrayList(Arrays.asList(strArray)); System.out.println(strList);Ccs결과 [a, b, c] 2) Coolections 유틸을 이용한 방법12345String[] strArray = {"a", "b", "c"};List strList = new ArrayList();Collections.addAll(strList, strArray); System.out.println(strList); 결과 [a, b,..

개발 2016.03.22
반응형