如何解决Function1中的Function1(上下文)不能应用于()

时间:2019-06-02 16:42:11

标签: java android

我遇到以下问题:

我想从另一个类中调用一个函数,所以我添加了这一行代码

Function1 func = new Function1();,我收到一条错误消息

Function1中的Function1(上下文)不能应用于()

此外,关于此函数及其错误,我打算调用上述函数,该函数以JSON对象和Filename作为参数,并返回文件,但是,当我输入它时,出现以下错误

Wrong 2nd argument type, found Java.lang.String required Java.io.File

有问题的代码是这样的:

JSONObject export = jsonArray1.getJSONObject(index);

 File file = func.exportToFile(export, "Export.json");

有问题的功能是这样开始的:

public void exportToFile(JSONObject objectToExport, File fN)
    {
        String output = objectToExport.toString();
        file_ = fN;
        if (!file_.exists()) {
            try {
                file_.createNewFile();
               } catch (IOException e) {
            e.printStackTrace();
        }
    }
    try{
        FileOutputStream fOut = new FileOutputStream(file_);
        fOut.write(output.getBytes());
        fOut.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

N.B .:我试图这样调用函数:

文件文件= func.exportToFile(export,func.file);

但是我只收到错误消息,指出类型不兼容

必需的Java.io.file

发现虚空

我做错了什么?

1 个答案:

答案 0 :(得分:2)

func.exportToFile(export, func.file);将不返回任何内容,因为exportToFile这是一个void方法。

更改方法,使其以这种方式返回文件:

public File exportToFile(JSONObject objectToExport, File fN) {
  String output = objectToExport.toString();
  file_ = fN;
  if (!file_.exists()) {
        try {
          file_.createNewFile();
        } catch (IOException e) {
          e.printStackTrace();
        }
  }
  try{
    FileOutputStream fOut = new FileOutputStream(file_);
    fOut.write(output.getBytes());
    fOut.close();
    return file_;
  } catch (FileNotFoundException e) {
    e.printStackTrace();
  } catch (IOException e) {
    e.printStackTrace();
  }
  return null;
}