背景:
我正在并发服务器上创建基本下载中心。
我在主方法
下的Server class
中创建文件对象
File[] files = {
new File("1. Program", "myProgram.jar"),
new File("2. Image", "myPicture.jpg"),
new File("3. Book", "myBook.txt")};
这引用了我创建构造函数和getter的File class
。
class File {
private String option;
private String fileName;
public File(String option, String fileName) {
this.option = option;
this.fileName= fileName;
}
public String getOption() {
return option;
}
public String getFileName() {
return fileName;
}
public void getFileOptions(File[] files) {
for (File f : files) {
System.out.printf("The option is %s\n", f.getOption());
}
}
}
我正在尝试从getFileOptions
调用ServerState class
方法。
theOutput= File.getFileOptions(files);
输出是一个返回给客户端的字符串。
我的IDE说无法找到(files)
。我出错的任何想法? Cam我没有将结果返回到最初没有创建对象的类?
答案 0 :(得分:1)
好的,所以你在这里提到了3个课程
Server(main)类,它有一个files变量,它是一个File对象数组。
作为对象类的文件。
您正在尝试执行的ServerState类:
theOutput= File.getFileOptions(files);
正确?
您无法在服务器类中创建对象并在ServerState类中使用它,除非您传递对它的引用,在这种情况下,我们需要更多上下文来帮助您。阅读上面发布的范围教程可能是一个好主意。
答案 1 :(得分:1)
好的,所以我已将File对象移动到ServerState class
并通过调用String theOutput = files[0].toString() + files[1].toString() + files[2].toString();
中包含对象构造函数的toString()
方法,使用File class
访问选项,吸气剂和二传手。
答案 2 :(得分:-2)
您在一个类的一个方法中定义的files
与您尝试在另一个类的另一个方法中引用的files
完全无关。如果不是这样,你不认为你的使用会与另一个程序员之前在SDK内容中使用变量有冲突吗?或者你已经被告知只使用像myNameThisClassFiles这样的“安全”名称?
无论如何,a tutorial。