Java 中的_全局_列表

_Global_ list in Java

我正在为 class 开发一个 java 程序,但我有一些 限制 正在折磨我。我必须读取一个文件并将其单词保存在一个列表中,然后保留该列表以便我可以从中提取单词。

我必须读取文件和 select n 个单词以及 return 那些单词,而不是整个列表。我的问题是:是否有某种方法可以将完整列表创建为全局或外部列表,以便每个方法都可以访问它,而无需成为参数?我需要修改完整列表,删除我需要的词,然后在其他方法中再次使用它。

谢谢:)

您可以通过将其设为 public 静态 来获得全局可访问变量。不过,就设计原则而言,这通常不是一个好主意,因为它往往会导致猖獗的依赖关系,以后很难替换。

您可以在 class publicstatic 中创建一个成员变量,这样您就可以从任何地方访问它:

public class One {
    public static List<String> names = new ArrayList<>();
}

public class Two {
    public void addName(String name) {
        One.names.add(name);
    }
}

public class Three {
    public void printTheNames() {
        System.out.println(One.names);
    }
}

然而...

这些限制(比如无法创建真正的全局变量)是有充分理由的,而不是因为 Java 缺少功能。如果您在这些限制方面遇到困难,那么这表明您正在尝试以错误的方式做事 - 这意味着您的程序设计存在问题。

几乎总是,global variables are bad