使用JSONObject Java类的静态getNames方法时Eclipse中的语法错误
作者:互联网
我正在尝试返回已提供给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似乎知道该方法在那里,因为它知道其正确的返回类型,但它声称该方法在类中未定义.
解决方法:
似乎方法getNames不是JSONObject的静态方法.我对吗?
在哪个类中声明?
如果是X类,您应该这样做:
X.getNames(jsonObj);
标签:eclipse,static-methods,json,java 来源: https://codeday.me/bug/20191201/2078301.html