Poniższy kod wykorzystuje proste tablice ciągu w języku Java.Przekazywanie tablic jako parametrów metod w języku Java
package javaarray;
final public class Main
{
public void someMethod(String[] str)
{
System.out.println(str[0]+"\t"+str[1]);
}
public static void main(String[] args)
{
String[] str1 = new String[] {"day", "night"};
String[] str2 = {"black", "white"};
//Both of the above statements are valid.
Main main=new Main();
main.someMethod(str1);
main.someMethod(str2);
//We can invoke the method someMethod by supplying both of the above arrays alternatively.
main.someMethod(new String[] { "day", "night" }); //This is also valid as obvious.
main.someMethod({ "black", "white" }); //This is however wrong. The compiler complains "Illegal start of expression not a statement" Why?
}
}
W powyższym fragmencie kodu możemy zainicjować takie tablice.
String[] str1 = new String[] {"day", "night"};
String[] str2 = {"black", "white"};
i możemy bezpośrednio przekazać ją do metody bez przypisywania w ten sposób.
main.someMethod(new String[] { "day", "night" });
Jeśli tak, to poniższe oświadczenie również powinno być ważne.
main.someMethod({ "black", "white" });
ale kompilator narzeka: "Nielegalny początek wyrażenia nie jest stwierdzeniem" Dlaczego?
Chyba jakoś trzeba przekazać odniesienie do tablicy ciągów. Przez to, co robisz, tak się nie dzieje. – noMAD
Może być trudno poprawnie parsować w żądanej formie, na przykład, jeśli kompilator widzi '{1, 12, 57}', co powinno być - 'bajt []', 'short []', ' int [] 'lub' long [] '? Przy wyraźnym typie nie ma już dwuznaczności. – trutheality