在Java中调用静态函数时如何运行构造函数

DrX*_*eng -3 java

我想要一个类检查输入是否有效,并且所有有效输入都记录在文本文件中.

因此在构造中,它会读入文本文件并将所有有效输入放入HashSet中.然后我有static函数接收输入并检查输入是否在HashSet中.

代码结构如下:

public class Validator {
    HashSet validInputs;

    public Validator() {
        //read in
    }

    public static boolean validate(String in) {
        //check and return
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在其他类中,我需要使用Validator类来验证字符串.代码如下:

...
String a = XXX;
boolean valid = Validator.validate(a);
...
Run Code Online (Sandbox Code Playgroud)

我没有测试过代码,但我有两个问题:

  1. 它有用吗?是否读入了有效的输入文本文件?
  2. 课程何时会在文本文件中读取?
  3. Validator每次调用函数时都会读取文本文件validate()吗?

Mar*_*ers 5

它有用吗?是否读入了有效的输入文本文件?

不,那不行.

您的方法应该是一个实例方法,以便它可以访问其他实例成员.

public boolean validate(String in) {
    //check and return
}
Run Code Online (Sandbox Code Playgroud)

课程何时会在文本文件中读取?

您必须先构建该类,然后才能使用它.在构造函数中读取文本文件.


每次调用函数validate()时,Validator都会读取文本文件吗?

不.调用时会调用构造函数new Validator().