Tiene varios parámetros opcionales

Estoy tratando de tener parámetros opcionales en mi método. He encontrado el bolean… probar, y funciona. Pero cada vez que intento con un sencond uno, no funciona.

Hay una posibilidad de poner dos o más (del mismo tipo, por ejemplo: 2 opción booleanos)

Código:
Lo que tengo ahora:

public void addJButton(boolean... yo){}

Lo que quiero:

public void addJButton(boolean... yo, boolean... yo2){}
InformationsquelleAutor 3751_Creator | 2014-03-06

6 Kommentare

  1. 5

    Como para el varargs-notación (boolean...): el varargs-parámetro tiene que estar siempre a la última, así que usted sólo puede tener uno de estos.

    Puede considerar pasar null para omitir los parámetros o usted podría tratar de algún tipo de método de sobrecarga como Bathseba sugerido.

    Cuando se va por la sobrecarga que tener en cuenta que no hay ningún llamado parámetros, por lo que sólo poosition y el tipo puede definir el parámetro que se pasa y lo que se omite!!

  2. 6

    Java no admite parámetros opcionales en funciones.

    Lugar, proporcionar un sobrecarga a la función como esta:

    void myFunction(boolean parameter)
    {
        /*ToDo - code here*/    
    }
    
    void myFunction()
    {
        myFunction(true/*i.e. call the overload with a default to true*/);
    }

    De, por supuesto, más de un parámetro puede ser predeterminada de esta manera y usted puede tener múltiples sobrecargas de apoyo para los diferentes esquemas predeterminados.

    • var-args son a menudo considerados los parámetros opcionales, y, como tal, Java no de soporte de ellos. Pero están limitados a un var-arg parámetro por el método, y que debe ser el último parámetro.
  3. 2

    Java admite parámetros opcionales en forma de var-args, pero cada método sólo puede tener 1 var-arg parámetro y debe ser la última en la lista de parámetros ( Varargs ).

    Java soporta la sobrecarga de métodos, y de Java se puede distinguir entre los métodos con diferentes firmas de método. Esto significa que los métodos dentro de una clase pueden tener el mismo nombre si ellos tienen diferentes listas de parámetros:

    public class DataArtist {
        ...
        public void draw(boolean b1) {
            ...
        }
        public void draw(boolean b1, boolean b2) {
            ...
        }
        public void draw(double f) {
            ...
        }
        public void draw(int i, double f) {
            ...
        }
    }

    Más Info en: Los Métodos Java.

    • Las necesidades de este cambio en la redacción de Java no admite parámetros opcionales en forma de var-args, pero cada método sólo puede tener 1 var-arg parámetro y debe ser la última en la lista de parámetros.
  4. 2

    Probar el generador de patrón cuando el manejo de múltiples o parámetros opcionales

    //Builder Pattern
    public class NutritionFacts {
        private final int servingSize;
        private final int servings;
        private final int calories;
        private final int fat;
        private final int sodium;
        private final int carbohydrate;
    
        public static class Builder {
            //Required parameters
            private final int servingSize;
            private final int servings;
    
            //Optional parameters - initialized to default values
            private int calories      = 0;
            private int fat           = 0;
            private int carbohydrate  = 0;
            private int sodium        = 0;
    
            public Builder(int servingSize, int servings) {
                this.servingSize = servingSize;
                this.servings    = servings;
            }
    
            public Builder calories(int val)
                { calories = val;      return this; }
            public Builder fat(int val)
                { fat = val;           return this; }
            public Builder carbohydrate(int val)
                { carbohydrate = val;  return this; }
            public Builder sodium(int val)
                { sodium = val;        return this; }
    
            public NutritionFacts build() {
                return new NutritionFacts(this);
            }
        }
    
        private NutritionFacts(Builder builder) {
            servingSize  = builder.servingSize;
            servings     = builder.servings;
            calories     = builder.calories;
            fat          = builder.fat;
            sodium       = builder.sodium;
            carbohydrate = builder.carbohydrate;
        }
    }

    La adición de los valores :

    NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8).
      calories(100).sodium(35).carbohydrate(27).build();
  5. 1

    Esto es un poco de un retraso en la respuesta, sino que Java tiene var-args en lugar de los parámetros opcionales y como otros han dicho, sólo se puede utilizar uno para cada método, y la var-arg parámetro debe ser el último en el método.

    Si necesitas algo como este;

    public void addJButton(boolean... yo, boolean... yo2){}

    A continuación, las siguientes son las alternativas disponibles.

    public void addJButton(boolean yo1, boolean yo2, boolean... yo3){}
    public void addJButton(boolean[] yo1, boolean[] yo2){}

    La primera opción significa que especificar manualmente el número de booleanos en un método sobrecargado, y la segunda opción tiene dos arrays de booleanos. Su var-args en última instancia, será interpretado como matrices una vez que entran en el método de todos modos.

  6. 0

    Si quieres tener varios parámetros opcionales

    public void initDatePickers(final EditText et,boolean... disableFuturedates)
    {...}

    a continuación puede acceder a los valores como una matriz como así,

    if(disableFuturedates[0])
    {
    
    }

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea