[英]error: Array required, but String found
我已經聲明了名稱和ID的公共靜態數組:
public static String[] name = new String[19];
public static int[] id = new int[19];
但是java compiler
說:
java:70: error: array required, but String found
java:71: error: array required, but int found
我不知道怎么了 是我如何聲明變量還是在編寫的方法中?
public static boolean add(String name, int id, int i)
{
if (i < 20) {
name[i] = name;
id[i] = id;
return true;
}
else if (i > 20) {
for (int j = 0; j < id.length; j++) {
if (id[j] == 0 && name[j].equals("null"))
id[j] = id;
name[j] = name;
}
return true;
}
else
return false;
}
請密切注意如何使用變量。 name
(在您的方法內部)是String
,但是您正在對其進行數組元素訪問。 和i
在一起。 id
也是如此; 它是一個int
,但是您正在對其進行數組元素訪問。
您正在有效地隱藏靜態變量,這會導致混亂和心痛。
考慮將參數重命名為您的方法,或使用類名稱來引用它們。
要么:
public static boolean add (String theName , int theIds, int i)
要么:
// for every usage of id and name as arrays
MyClass.name[i]= name;
MyClass.id[i]=id;
靜態name
String數組和傳遞給add
方法的本地name
String變量之間會發生沖突。
最好的解決方案是使用不同的名稱。 這將使代碼更容易理解。
如果仍然堅持使用相同的名稱,則可以通過使用類名稱訪問靜態數組來解決名稱沖突:
YourClassName.name[i]= name;
同樣適用於您的id
int數組和id
int變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.