面试题:下面程序输出结果?
package com.wlkj.test; public class EqualTest { public static void main(String[] args) { StringBuffer str = new StringBuffer(""); if(str.equals("")){ System.out.println("相等"); }else{ System.out.println("不相等"); } } }
结果输出:不相等。
注意点:
两个不同类型的对象调用equals方法,如果equals方法没有被重写,那么调用object的==,永远不会相等;如果equals方法被重写,而且含有instanceof逻辑,那么还是不会相等。
解决方法:应该改成str.toString()