[JAVA] Punkt 53: Verwenden Sie Varargs mit Bedacht

53. Argumente mit variabler Länge sollten mit Vorsicht verwendet werden

package tryAny.effectiveJava;

public class Varargs {
    public static void main(String[] args) {
        System.out.println(min1(99));
        System.out.println(min2(1, 2, 3));

    }

    // ugly
    static int min1(int... args) {
        if (args.length == 0)
            throw new IllegalArgumentException("Too few arguments");
        int min = args[0];
        for (int i = 1; i < args.length; i++)
            if (args[i] < min)
                min = args[i];
        return min;
    }

    // better
    static int min2(int firstArg, int... remainingArgs) {
        int min = firstArg;
        for (int arg : remainingArgs) {
            if (arg < min) {
                min = arg;
            }
        }
        return min;
    }
}
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) { }

Recommended Posts

Punkt 53: Verwenden Sie Varargs mit Bedacht
Punkt 52: Verwenden Sie Überladung mit Bedacht
Punkt 45: Verwenden Sie Streams mit Bedacht
Punkt 83: Verwenden Sie die verzögerte Initialisierung mit Bedacht
Punkt 66: Verwenden Sie native Methoden mit Bedacht
Punkt 32: Kombinieren Sie Generika und Varargs mit Bedacht
Punkt 55: Optionen mit Bedacht zurückgeben
Punkt 26: Verwenden Sie keine Rohtypen
Punkt 59: Kennen und verwenden Sie die Bibliotheken
Punkt 40: Verwenden Sie konsequent die Überschreibungsanmerkung
Punkt 69: Verwenden Sie Ausnahmen nur für außergewöhnliche Bedingungen
Punkt 41: Verwenden Sie Markierungsschnittstellen, um Typen zu definieren
Punkt 36: Verwenden Sie EnumSet anstelle von Bitfeldern
Punkt 71: Vermeiden Sie die unnötige Verwendung geprüfter Ausnahmen
Punkt 37: Verwenden Sie EnumMap anstelle der ordinalen Indizierung
Punkt 72: Bevorzugen Sie die Verwendung von Standardausnahmen
Punkt 48: Seien Sie vorsichtig, wenn Sie Streams parallel schalten