Java 我的构造器坏了,有人能帮我解决这个问题吗?

Java 我的构造器坏了,有人能帮我解决这个问题吗?,java,Java,构造函数似乎没有将值放入表达式变量中。如果它这样做了,则不会正确地将其传递给标记器。当我调试时,它似乎只是传递了构造函数中的行。我对我编写的代码的理解是,构造函数主要被调用。字符串应该存储在解析器中的表达式变量中,然后表达式应该被传递给标记器,但当表达式变量被传递时,它是空的。我需要将字符串存储在表达式变量中,然后再将其传递给标记器 public class Parser { String expression; Tokenizer tokenizer = new Tokeniz

构造函数似乎没有将值放入表达式变量中。如果它这样做了,则不会正确地将其传递给标记器。当我调试时,它似乎只是传递了构造函数中的行。我对我编写的代码的理解是,构造函数主要被调用。字符串应该存储在解析器中的表达式变量中,然后表达式应该被传递给标记器,但当表达式变量被传递时,它是空的。我需要将字符串存储在表达式变量中,然后再将其传递给标记器

public class Parser {
    String expression;
    Tokenizer tokenizer = new Tokenizer(expression);

    Parser(String e) {
        this.expression = e;
    }
}
 public static void main(String[] args) {
    // TODO code application logic here
    Parser parser = new Parser("3+5");
}

标记器标记器=新的标记器表达式//问题就在这里

您正在使用空表达式创建标记器

public class Parser {
    String expression;
    Tokenizer tokenizer =null;

    Parser(String e) {

        this.expression = e;
        tokenizer = new Tokenizer(expression);
    }
}
 public static void main(String[] args) {
    // TODO code application logic here
    Parser parser = new Parser("3+5");
}

标记器标记器=新的标记器表达式//问题就在这里

您正在使用空表达式创建标记器

public class Parser {
    String expression;
    Tokenizer tokenizer =null;

    Parser(String e) {

        this.expression = e;
        tokenizer = new Tokenizer(expression);
    }
}
 public static void main(String[] args) {
    // TODO code application logic here
    Parser parser = new Parser("3+5");
}

在对象初始化期间,首先初始化字段。所以在田野里

String expression;
Tokenizer tokenizer = new Tokenizer(expression);
作为参数传递给标记器构造函数的表达式的值实际上是默认值null

在表达式正确/完全初始化后,即在类的构造函数中,需要初始化标记器字段

Parser(String e) {
    this.expression = e;
    this.tokenizer = new Tokenizer(expression /* or e */);
}

在对象初始化期间,首先初始化字段。所以在田野里

String expression;
Tokenizer tokenizer = new Tokenizer(expression);
作为参数传递给标记器构造函数的表达式的值实际上是默认值null

在表达式正确/完全初始化后,即在类的构造函数中,需要初始化标记器字段

Parser(String e) {
    this.expression = e;
    this.tokenizer = new Tokenizer(expression /* or e */);
}

不要害怕将表达式传递给标记器,字符串是不可变的:-不要害怕将表达式传递给标记器,字符串是不可变的:-