Đoạn mã sau sử dụng các mảng đơn giản của chuỗi trong Java.Truyền mảng dưới dạng tham số phương thức trong 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?
}
}
Trong đoạn mã trên, chúng tôi có thể khởi tạo các mảng như thế này.
String[] str1 = new String[] {"day", "night"};
String[] str2 = {"black", "white"};
và chúng tôi có thể chuyển trực tiếp đến phương thức mà không được chỉ định như thế này.
main.someMethod(new String[] { "day", "night" });
Nếu đúng như vậy thì tuyên bố sau cũng phải hợp lệ.
main.someMethod({ "black", "white" });
nhưng trình biên dịch than phiền "Bắt đầu biểu thức bất hợp pháp không phải là tuyên bố" Tại sao?
Tôi đoán bạn bằng cách nào đó cần phải vượt qua tham chiếu của mảng chuỗi. Bởi những gì bạn đang làm, điều đó không xảy ra. – noMAD
Có thể khó phân tích chính xác trong biểu mẫu bạn muốn, ví dụ nếu trình biên dịch thấy '{1, 12, 57}', thì nó sẽ là gì - một 'byte []', 'short []', ' int [] ', hoặc' long [] '? Với loại rõ ràng, sự mơ hồ đã biến mất. – trutheality