다라다라V
article thumbnail
728x90
반응형

조기 반환

  • 코드 실행 과정이 함수 끝까지 도달하기 전에 반환하는 기법
    • 코드 가독성을 높임
    • 예외를 조금 더 깔끔하게 처리
public static void main(String[] args) {
    System.out.println(totalPrice(4, 50));
}

private static int totalPrice(int quantity, int price) {
    int total = quantity * price;
    if (total > 100) {
        return (int)(total * 0.9);
    }
    return total;
}

 

보호 구문

  • 본격적인 로직을 진행하기 전에 예외 처리 코드를 추가하는 기법
  • 예시
    • 조건문을 이용하여 입력값이 유효한지 검사
    • 아니라면 함수 종료
  • 구현부에서 입력값에 대한 예외를 고려하지 않음
    • 처음부터 예외를 고려하여 코드를 안전하게 작성
    • 즉, 예외를 잘 고려했다면 코드에서 원하는 동작 구현에만 집중하면 됨
static double calculateAverage(List<Integer> numbers) {
    if (numbers == null) // null이면 종료(예외)
        return 0;

    if (numbers.isEmpty()) // 데이터가 없으면 종료(예외)
        return 0;

    int total = numbers.stream().mapToInt(i -> i).sum(); //예외 처리 후 기능 구현
    return (double) total / numbers.size();
}

 

제네릭

  • 빌드 레벨에서 타입을 체크하여 타입 안정성을 제공
  • 타입 체크와 형 변환을 허락하여 코드를 간력랗게 함
public static void main(String[] args) {
    List list = new ArrayList();
    list.add(10);
    list.add("abc");

    int sum1 = (int) list.get(0) + (int) list.get(1); // 런타임 오류 발생

    List<Integer> genericList = new ArrayList<>();
    genericList.add(10);
    genericList.add("abc"); // 문법(빌드 레벨) 오류 발생

    int sum2 = genericList.get(0) + genericList.get(1);
}
  • List<Integer>
    • 타입을 강제하는 것이 제네릭
    • 제네릭은 타입에 맞지 않는 데이터를 추가하려고 할 때 문법 오류를 강제해서 개발자의 실수 방지
  • 코딩 테스트에서는 여러 타입의 데이터를 하나의 컬렉션에 넣는 경우가 없음
    • 제네릭으로 타입을 강제하여 실수를 방지
반응형
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!