NMP-Study / EffectiveJava2022

Effective Java Study 2022
5 stars 0 forks source link

아이템 53. 가변인수는 신중히 사용하라 #53

Closed okhee closed 1 year ago

qlqhqo2341 commented 1 year ago

가변인수는 신중히 사용하라

예시

static int sum(int... args) {
    int sum = 0;
    for (int arg: args) {
        sum += arg;
    }
    return sum;
}

인수가 1개 이상이어야 할 때

// BAD 
// 컴파일 타임에 오류를 잡지 못함.
// 코드가 지저분함.
static int min(int.. args) {
    if (args.length == 0) {
        throw new IllegalArgumentException("인수가 1개 이상 필요합니다.")
    }
    int min = args[0];
    for (int i=1;i<args.length; i++) {
        if (args[i] < min) {
            min = args[i];
        }
    }
    return min;
}

// GOOD
static int min(int firstArg, int.. remainingArgs) {
    int min = firstArg;
    for (int arg : remainingArgs) {
        if (arg < min) {
            min = arg;
        }
    }
    return min;
}

배열을 매번 생성하고 싶지 않다면..?