编程语言
首页 > 编程语言> > 使用JSONObject Java类的静态getNames方法时Eclipse中的语法错误

使用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