2012-11-09 11 views
5

Jestem nowicjuszem w Javie i napotkałem kilka funkcji, które akceptują tablicę danych elementów (np. int[]). Jednak są przypadki, w których mam tylko jedną int do przejścia i zastanawiałem się, jak to zrobić w linii (na przykład bez definiowania najpierw zmiennej tablicowej).Przekazywanie pojedynczego elementu Tablica Inline

Na przykład, jak uprościć to:

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

Aby coś podobnego (złożony, nie działa w ten sposób):

am.getProcessMemoryInfo([mySinglePID]); 

Odpowiedz

8

Wystarczy użyć anonimowej tablicy w kodzie:

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

anonimowej tablicy: w Javie jest to całkowicie legalne do tworzenia anonimowej tablicy używając następującej składni.

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

spróbować

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

oneliner będzie

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

Zdobione dokładnie 30 sekund po tym, jak opublikowałem pytanie. Dzięki za pomoc. –

+0

@ ColorWP.com serdecznie zapraszamy :) – PermGenError

+0

W rzeczywistości twój pierwszy przykład jest taki sam jak opublikowany w OP. Nie musisz używać "new int []" jawnie, gdy używasz inicjalizacji w miejscu. To, czego potrzebuje OP, to drugie. –

4

Można zrobić to w ten sposób: -

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

Więc nie trzeba zadeklarować zmienną tablicową tutaj. Po prostu przekaż obiekt o nazwie bez nazwy:array.

2

W rzeczywistości chcesz zrobić:

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

można pominąć new int[] tylko w deklaracji, jeśli złamiesz to, że składnia nie działa

// NOT WORKING EXAMPLE 
int[] pidArray; 
pidArray = { mySinglePID }; 
Powiązane problemy