Firma di ellissi Java per più parametri

-2

In primo luogo, Sto studiando la funzione con un nuovo tipo di firma e corpo, e in questo codice, voglio sapere, che tipo di oggetto è values ? Non sembra essere una serie di stringhe basate sulla mia osservazione.
In secondo luogo, esiste un metodo che restituisce il nome della classe di un particolare oggetto? Ho pensato che potrebbe essere tostring , ma che ha restituito Ljava.lang.String;@1540e19d nel codice qui sotto. Non capisco questo ...

static double AddValues(String ... values) {

    double result = 0;
    Object o = values;
    System.out.println("XXXz");
    System.out.println(o.toString());


    for (String value : values)
    {
        double d = Double.parseDouble(value);
        result += d;

    }

    return result;
}
    
posta Kamlesh Mistry 27.05.2016 - 16:44
fonte

2 risposte

0

Questo è un argomento varargs e values è trattato come una stringa array . Java nasconde la creazione dell'array, nota., Ma puoi chiamare quel metodo con una matrice piuttosto che con un semplice elenco di argomenti.

    
risposta data 27.05.2016 - 17:09
fonte
-1

values è un array di String . Non sono sicuro di quale osservazione ti abbia portato a concludere diversamente. I parametri del metodo Variadic in Java raccolgono gli argomenti in un array, come puoi vedere in Java 5 varargs documentation.

Per scoprire il tipo di un oggetto, usa values.getClass().getName() (produce "[Ljava.lang.String;" che indica una matrice di String ). Puoi usare values.getClass().isArray() per verificare se è un array e values.getClass().getComponentType() per ottenere il tipo dei suoi elementi.

Vedi la documentazione sui componenti dell'array per ulteriori informazioni.

    
risposta data 28.05.2016 - 09:47
fonte

Leggi altre domande sui tag