我有一个名为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是如何出现的?
答案 0 :(得分:2)
如果您未传递任何level
,则String level
将初始化为NULL
。如果NumberFormatException
状态为parseInt
,如果您未传递有效数字,则0
可能会将您的字符串解析为{{1}}。
即使没有,Java也会自己将所有值初始化为0。确保传递有效的等级值,然后重试。