JSONObject クラスに提供されたすべての名前を返そうとしています (関連する値なしで、独自の配列内のすべてのキーのように)。私のコードは現在次のとおりです。
String names[] = new String[10];
names = JSONObject.getNames(jsonObj);
配列を取得しようとしている方法は次のとおりです。
public static String[] getNames(JSONObject jo) {
int length = jo.length();
if (length == 0) {
return null;
}
Iterator iterator = jo.keys();
String[] names = new String[length];
int i = 0;
while (iterator.hasNext()) {
names[i] = (String)iterator.next();
i += 1;
}
return names;
}
そして、これは私が得ているエラーです:
The method getNames(JSONObject) is undefined for the type JSONObject
ただし、意図的に戻り、間違った型の変数に割り当てるようにコードを設定すると、次のようになります。
int inames = JSONObject.getNames(jsonObj);
上記の行の JSONObject 部分または jsonObj パラメーターのいずれかを強調表示すると、Eclipse で次のエラーが表示されます。
Type mismatch: cannot convert from String[] to int
getNames メソッドを強調表示しても、以前と同じエラーが発生します。
これから何を得ることができますか?Eclipse は正しい戻り値の型を知っているため、メソッドがそこにあることを知っているようですが、メソッドがクラスで未定義であると主張しています。