找不到变量。引用另一个类中的对象

时间:2012-02-26 20:58:24

标签: java

背景:

我正在并发服务器上创建基本下载中心。

我在主方法

下的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我没有将结果返回到最初没有创建对象的类?

3 个答案:

答案 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