instanceof运算符是Java独有的双目运算符,其左边的操作元是对象,右边的操作是操作元的类,当左边的操作元是右边的类或者其子类所创建的对象时,instanceof运算的结果是true,否则是false。
结合String类的equals()方法来看。
运算符先判断传入参数是否为字符串对象。
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}