0

我有一个名为 DIE 的 java 类,它有两个字符串字段:位置和类型。我还有一个名为 Tag 的类,它扩展了 DIE 并添加了一个新的 int 字段:level。我有一些基本上说的代码

Tag tag = (Tag) (die);
System.out.println(tag);

打印出来 -

Tag- location: b type: compile_unit level: 0

其中大部分是有道理的,但我不明白为什么 level 被打印为零,或者这个值是如何被评估的。这是 Tag 的构造函数代码 -

Tag(String location, String type, String level) {
    super(location, type);
    this.level = Integer.parseInt(level);
}

那么值 0 是如何出现的呢?

4

1 回答 1

2

如果您没有传递任何level, thenString level将被初始化为NULL. 尽管javadocsNumberFormatException声明如果您不传递有效数字,您应该有一个,但有可能parseInt将您的字符串解析为0.

即使没有,Java 也会自行将所有值初始化为 0。确保您传递了有效的级别值,然后重试。

于 2013-06-04T17:57:05.180 回答