2012-11-09 10 views
5

Sono nuovo in Java e ho riscontrato diverse funzioni che accettano un array di elementi dati (ad esempio int[]). Tuttavia, ci sono casi in cui ho solo un int per passare e mi chiedevo come fare questo in linea (ad esempio senza prima definire una variabile di matrice).Passaggio di Array di elementi singoli in linea

Per esempio, come semplificare questo:

int[] pidArray = { mySinglePID }; 
am.getProcessMemoryInfo(pidArray); // This one accepts arrays only 

a qualcosa di simile (fatta, non funziona in questo modo):

am.getProcessMemoryInfo([mySinglePID]); 

risposta

8

Basta usare Anonimo Array per il codice:

am.getProcessMemoryInfo(new int[]{mySinglePID }); // This one accepts arrays only 

Anonimo Array: in Java è perfettamente legale per creare un array anonimo utilizzando la seguente sintassi.

new <type>[] { <list of values>}; 
6

provare

int[] pidArray = new int[]{ mySinglePID }; 
am.getProcessMemoryInfo(pidArray); 

oneliner sarebbe

am.getProcessMemoryInfo(new int[]{mySinglePID }); 
+0

capito esattamente 30 secondi dopo che ho postato la domanda. Grazie comunque dell'aiuto. –

+0

@ ColorWP.com sei il benvenuto :) – PermGenError

+0

In realtà, il tuo primo esempio è uguale a quello pubblicato in OP. Non è necessario utilizzare 'new int []' in modo esplicito, quando si utilizza l'inizializzazione sul posto. Ciò di cui OP ha bisogno è il 2 °. –

4

si può fare in questo modo: -

am.getProcessMemoryInfo(new int[]{ mySinglePID }); 

Quindi, non c'è bisogno di dichiarare la variabile di matrice qui. Basta passare un oggetto senza nomearray.

2

In realtà si vuole fare:

am.getProcessMemoryInfo(new int[] { mySinglePID }); 

si può saltare new int[] solo in dichiarazione, se lo rompi, che la sintassi non funziona

// NOT WORKING EXAMPLE 
int[] pidArray; 
pidArray = { mySinglePID }; 
Problemi correlati