728x90 map4 11장. null 대신 Optional 클래스 값이 없는 상황을 어떻게 처릴할까? 1 2 3 public String getCarInsuranceName(Person person) { return person.getCar().getInsurance().getName(); } Colored by Color Scripter cs 위 코드의 경우 만약 getCar 메서드를 통해 가져온 객체가 null이거나 getInsurance의 반환값이 null이라면 NullPointerExceptino이 발생한다. 보수적인 자세로 NullPointerException 줄이기 위 코드와 같은 NullPointerException을 줄이기 위해선 다음과 같은 보수적 방식을 사용할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 public String getC.. 2022. 3. 27. 8장 컬렉션 API 개선 컬렉션 팩토리 여러 소수의 문자열을 한번에 저장하려면 add메서드를 사용하는 것보단 Arrays.asList 팩토리 메서드를 사용하는 것이 더 간결하다. 하지만 이 방식으로 만들어진 리스트는 고정 크기라 요소를 갱신할 수는 있지만 새 요소를 추가하거나 삭제할 수 없다. 요소를 추가하거나 삭제한다면 UnsupportedOperationException이 발생한다. 이는 asList 메서드가 내부적으로 고정된 크기의 변환할 수 있는 배열로 구현되었기 때문이다. Set의 경우 다음과 같이 깔끔하지 못하고 내부적으로 불필요한 객체 할당을 하는 연산을 해야 생성할 수 있다. 1 2 3 4 5 Set friends = new HashSet(Arrays.asList("a", "b", "c")); Set friends.. 2022. 3. 15. stream stream은 collection에 있는 데이터를 처리하는 모음이다. 따라서 컬랙션은 데이터를 가지고 있고 스트림은 이 데이터들을 사용해 어떠한 로직을 수행한다. 스트림은 스트림이 처리하는 데이터 소스를 변경하지 않는다. 1 2 3 4 5 6 7 8 9 10 public static void main(String[] args) { List names = new ArrayList(); names.add("keesun"); names.add("toby"); names.add("yunki"); names.stream() .map(String::toUpperCase) .forEach(System.out::println); } Colored by Color Scripter cs 위 코드에서 map을 사용한 직후의.. 2021. 11. 21. 컴포넌트 반복 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import React from 'react'; const IterationSample = () => { return( 1 2 3 4 ); }; export default IterationSample; cs 위와같은 코드가 있다고 해보자. li가 중복되어 있다. 만약 이런 식으로 중복된 코드가 늘어날 경우 파일 용량 증가와 효율적인 관리가 불가능 하다. 이럴때는 map()을 사용하면 된다 1 2 3 4 5 6 7 8 9 import React from 'react'; const IterationSample = () => { const names = ['1', '2', '3']; const name_list = names.map(name => {n.. 2021. 6. 28. 이전 1 다음 728x90