字符串被初始化为0,原因不明

时间:2013-06-04 17:45:16

标签: java string initialization

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

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

打印出来 -

Tag- location: b type: compile_unit level: 0

大部分都是有道理的,但我不明白为什么水平被打印为零,或者甚至评估该值的原因。这是Tag -

的构造函数代码
Tag(String location, String type, String level) {
    super(location, type);
    this.level = Integer.parseInt(level);
}

那么值0是如何出现的?

1 个答案:

答案 0 :(得分:2)

如果您未传递任何level,则String level将初始化为NULL。如果NumberFormatException状态为parseInt,如果您未传递有效数字,则0可能会将您的字符串解析为{{1}}。

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