Eclipseは使っていないので、エラー文の意味は分かりません。
ArrayInitializer(配列初期化子 int[] array = { 1, 2, 3 };
の{ 1, 2, 3 }
の部分)は、型を明示した変数で受けねばなりません。
var array = { 1, 2, 3 };
こうもできませんし、メソッドの引数にもできません(「気が利かないな」とは思いますが、そういう仕様なので仕方がありません^^;
いったん変数で受けるか、newで型を明示します。
それとは別に2か所間違いがありますが、コード内のコメントをご覧ください。
Java
1public class ArrayTest2 {
2
3 String[] a;
4
5 // これなら可能
6// String[] a = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday" };
7
8 ArrayTest2() {
9 // 一個一個入れるならnewでサイズ分確保が必要
10 a = new String[7];
11 a[0] = "Sunday";
12 a[1] = "Monday";
13 a[2] = "Tuesday";
14 a[3] = "Wednesday";
15 a[4] = "Thursday";
16 a[5] = "Fryday";
17 a[6] = "Saturday";
18
19 // これすらできないのは厳しすぎる気はするw
20// a = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday" };
21 }
22
23// ArrayTest2(String[] day) {
24// a = day;
25// }
26 // こうしておくと配列としても受け取れるし、可変長引数でも指定できて便利かも
27 // String[] day と両立はできない(内部的には同じメソッドになってしまうため)
28 ArrayTest2(String... day) {
29 a = day;
30 }
31
32 String weekstr(int c) {
33 return (a[c]);
34 }
35
36 public static void main(String[] args) {
37 String b;
38
39 // これはできない!
40// ArrayTest2 d1 = new ArrayTest2({"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday"});
41
42 // いったん変数で受けるか
43 String[] array = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday" };
44 ArrayTest2 d1 = new ArrayTest2(array);
45
46 // newで型を明示するか どちらか
47// ArrayTest2 d1 = new ArrayTest2(new String[]{ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday" });
48
49 // 可変長引数
50// ArrayTest2 d1 = new ArrayTest2("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday");
51
52 for (int i = 0; i <= 6; i++) {
53 // weekstrはインスタンスメソッド
54// b = weekstr(i);
55 b = d1.weekstr(i);
56 System.out.println(b.substring(0, 3));
57 }
58 }
59}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/12 10:26