我遇到以下问题:
我想从另一个类中调用一个函数,所以我添加了这一行代码
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
发现虚空
我做错了什么?
答案 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;
}