我有以下Java类文件,我试图让一个类文件(Loadanotherfile.java)加载另一个类文件。加载的类文件(FileData.java)依次加载文本文件。
注意:单独运行FileData文件可以正常工作,所以我不认为这是问题所在。
见下文:
FileData.java:
package test;
import java.io.IOException;
public class FileData {
public static void main (String[] args) throws IOException {
String file_name = "C:/Java/test.txt";
try {
ReadFile file = new ReadFile(file_name);
String[] anyLines = file.OpenFile();
int i;
for (i=0; i < anyLines.length; i++) {
System.out.println(anyLines[i]);
}
}
catch (IOException e) {
System.out.println( e.getMessage() );
}
}
}
Loadanotherfile.java:
package test;
import java.io.IOException;
public class Loadanotherfile {
public static void main(String[] args) {
FileData.main(String[] args) throws IOException;
}
}
因此Loadanotherfile.java
调用FileData
类中的main方法。起初我只是将FileData.main()
放在Loadanotherfile
类中,但结果错误消息说我需要字符串参数,所以我输入了常见的&#34; String [] args&#34;,如图所示。
但是我得到了#34; .class预期&#34;或者&#34;要求:价值,发现:等级&#34;错误。 然后我试图传递
String[] anyLines
作为论据,但这也没有奏效。
那么需要传递哪些参数,以便FileData在Loadanotherfile中执行?
我是Java新手,一周前开始:0所以提前谢谢
答案 0 :(得分:0)
你不需要任何参数,因为你没有使用它。你可以尝试:
package test;
public class Loadanotherfile throws Exception{
public static void main(String[] args) {
FileData.main(args);
}
}
OR
package test;
public class Loadanotherfile throws Exception{
public static void main(String[] args) {
FileData.main(null);
}
}
答案 1 :(得分:0)
试试这个:
FileData.main(new String[]{});
答案 2 :(得分:0)
问题是您使用语法来声明一个方法来调用此行中的方法
FileData.main(String[] args) throws IOException;
将Loadanotherfile
的主要方法的参数传递给FileData
main方法的主要方法
// just pass the arguments of the Loadanotherfile main method.
FileData.main(args);
或
// pass a new empty string array
FileData.main(new String[]{});
它会起作用。
您也可以将null
传递给FileData主方法,但不推荐这样做,因为如果您使用参数也必须检查null
// possible but not recommended
FileData.main(null);
但我想提出另一种方法。这样做&#34;纠正&#34;办法。
为FileData使用有用的名称 - 实际上它就像FileDataService
。要阅读这些行,请使用Files
包中的java.nio.files
,并使用代表loadFile
代码的方法名称。只是为了有一个主要的方法,我在这里添加了主要方法。
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.util.List;
public class FileDataService {
public static void main(String...args) {
new FileDataService().loadData();
}
public void loadData() {
try {
File file = new File("C:/Java/test.txt");
List<String> anyLines = Files.readAllLines(file.toPath(), Charset.defaultCharset());
for (String line : anyLines) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
在LoadAnotherClass
中,您可以写
public class LoadAnotherClass {
public static void main(String[] args) {
new FileDataService().loadData();
// or even
FileDataService.main(new String[]{});
}
}