解释为什么在比较字符串时(if("question".equals(action) )),字符串常量放在前面不会出现空指针的问题。
1. public boolean equals(Object anObject) { //对象不为空才有这个方法
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
2.解释instanceof
使用Java的伪代码来表现Java语言规范所描述的运行时语义:
// obj instanceof T
boolean result;
if (obj == null) {
result = false;
} else {
try {
T temp = (T) obj; // checkcast
result = true;
} catch (ClassCastException e) {
result = false;
}
因此对于null对象在调用Instanceof不会出现空指针的问题