java未初始化字符串_在Java中处理未初始化的字符串
这是我作为家庭作业所做的一个小程序的一部分:
public Exam maxGrade() {
Node p = firstNode;
int max = 0;
String name;
while (p!=null) {
if (p.info.getGrade()>max) {
max = p.info.getGrade();
name = p.info.getName();
}
p = p.next;
}
if (name==null)
return null;
else
return searchByName(name);
}
因此,当我继续编译时,编译器输出以下消息:
Student.java:127: error: variable name might not have been initialized
if (name==null)
用以下代码替换第四行可以很容易地解决这个问题:
String name = null;
现在,我可以看到一些逻辑.但我真的很想掌握这个问题背后的运作方式.
我的意思是,如果变量在你的代码中看到你正在对它做一些事情,那么编译器会检查变量是否被初始化似乎是合理的,但我认为我没有做任何需要初始化变量的事情.
根据像this这样的来源,当我简单地声明我的String(或任何其他Object)变量“name”时,它已经指向null.那么为什么仅仅检查该值是否为空它被认为是异常?除了赋值之外,编译器是否会考虑我对未初始化变量所做的任何错误?