Item 53. Varargs
κ°λ³μΈμλ μ μ€ν μ¬μ©νλΌ
κ°λ³μΈμ λ©μλλ λͺ μν νμ μ μΈμλ₯Ό 0κ° μ΄μ λ°μ μ μκ³ , νΈμΆνκ² λλ©΄ μΈμμ κ°μλ§νΌ λ°°μ΄μ λ§λ€μ΄μ μΈμλ€μ λ°°μ΄μ μ μ₯νμ¬ λ©μλμ μ λ¬νλ€. μ¬κΈ°μ μΈμ 1κ° μ΄μμ λ°μμΌλ§ νλ λ©μλλ κ°λ³μΈμλ§ μ¬μ©νλ©΄ λ°νμ μμ μ μ€λ₯κ° λ°μν μ μλ€.
class Example {
// μΈμ 1κ° μ΄μμ λ°μμΌλ§ νλ λ©μλ
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;
}
public static void main(String[] args) {
System.out.println(min()); // λ°νμ μ€λ₯ λ°μ
}
}
μ μμμμλ μΈμκ° 1κ° μ΄μ νμνλ° μΈμκ° μλ μν©μμ νΈμΆνκ² λλ©΄ λ°νμ μ€λ₯κ° λ°μνλ€. μ΄λ₯Ό λ°©μ§νκΈ° μν΄μ 첫 λ²μ§Έ μΈμλ₯Ό νλ²ν λ§€κ°λ³μλ‘ λ°λλ‘ νλ©΄ λλ€.
class Example {
// μΈμ 1κ° μ΄μμ λ°μμΌλ§ νλ λ©μλ
static int min(int firstArg, int... args) {
int min = firstArg;
for (int arg : args) {
if (arg < min) {
min = arg;
}
}
return min;
}
}
μ±λ₯ λ¬Έμ
κ°λ³μΈμ λ©μλλ νΈμΆλ λλ§λ€ λ°°μ΄μ μλ‘ νλ ν λΉνκ³ μ΄κΈ°ννκΈ° λλ¬Έμ μ±λ₯μ΄ μ€μν μν©μμλ κ°λ³μΈμλ₯Ό μ¬μ©νμ§ μλ κ²μ΄ μ’λ€. μ΄λ¬ν μ±λ₯ λ¬Έμ λ₯Ό μ΅μννκΈ° μν΄μ μΌμ κ°μκΉμ§λ λ€μ€ μ μλ₯Ό νμ©νμ¬ μ±λ₯μ μ΅μ νν μ μλ€.
class Example {
public void foo() {
}
public void foo(int a1) {
}
public void foo(int a1, int a2) {
}
public void foo(int a1, int a2, int a3) {
}
public void foo(int a1, int a2, int a3, int... rest) {
}
}
λ§μ½ λλΆλΆμ κ²½μ° μΈμκ° 3κ° μ΄νμΌ κ²μΌλ‘ μμλλ€λ©΄ μμ κ°μ΄ λ€μ€ μ μλ₯Ό νμ©νλ©΄ λΆνμνκ² λ°°μ΄μ ν λΉνκ³ μ΄κΈ°ννλ λΉμ©μ μ€μΌ μ μλ€.
Last updated
Was this helpful?