java中不同类型的变量用equals比较的结果

publicclassX{publicstaticvoidmain(String[]args){Srings1=newString("true");Booleanb1=n... public class X{
public static void main(String[] args){
Sring s1=new String("true");
Boolean b1=new Boolean(true);
if(s1.equals(b1)){
System.out.println("Equal");}
}}
答案有A.无输出 B输出Equal C第五行出现编译错误 D程序执行后产生异常
为什么选A呢?
展开
 我来答
百度网友6bf1bee
推荐于2018-04-15 · TA获得超过239个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:95.3万
展开全部
 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;
    }

这是String中equals的实现,b1是Boolean类型的,不是instanceof String,所以返回了false,然后就没有输出了。

ansiansi
2013-12-29 · TA获得超过294个赞
知道小有建树答主
回答量:650
采纳率:0%
帮助的人:379万
展开全部
(s1.equals(b1)是false当然没输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
游戏人间6018
2013-12-29 · TA获得超过1467个赞
知道小有建树答主
回答量:544
采纳率:0%
帮助的人:128万
展开全部
不是同一类型的直接返回false了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式