永发信息网

为什么Java编译时提示缺少返回值?

答案:3  悬赏:10  手机版
解决时间 2021-03-05 03:15
class Student extends Person{
private String school;

public Student(String name,String location,String school) {
super(name,location);
this.school = school;
}

public String toString() {
return super.toString() + ",school:" + school;
}

public boolean equals(Object obj) {
if(obj == null) return false;
else if(obj instanceof Student) {
Student s = (Student)obj;
if(s.name == this.name && s.location == this.location && s.school == this.school)
return true;
}
else {return false;}
}
}
提示在倒数第二行处缺少返回值,但是把倒数第三行else删掉的话又能编译。
最佳答案
如果你这一个ifif(s.name == this.name && s.location == this.location && s.school == this.school)
return true;没有通过的话 那这个else if(obj instanceof Student) {
Student s = (Student)obj;
if(s.name == this.name && s.location == this.location && s.school == this.school)
return true;
}里面就没有返回值 而你在equals方法结尾也没有给返回值 所以就出现了你说的这用情况
全部回答
逻辑错了,倒数第二个if,里面还有一个return,如: if(s.name == this.name && s.location == this.location && s.school == this.school) return true; return true;
你的两个返回语句都写在了if里,系统判断不出你这两个if是互斥的,它觉得万一你两个if都不成立,就不会有返回值,所以编译不通过。有两种方式: 1. 在return false;后面加一个return false;表示如果上面两个都不成立,返回false,这种写法虽然笨,但是很多实际开发都是这样做的,只不过两个if不是互斥的 2. 把两个if写成一个:if(x==true)xxx else xxxx;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【言外之意的拼音】有没有li hei这个拼音的词
怡德园饭馆我想知道这个在什么地方
24小时停车监控功能有用吗? 20分
东村和西村共有247人.东村比西村的3倍多3.两
请问凤凰众筹是好的选择吗 ?
谁知道哪里有美丽的天堂歌谱 歌词:在天父与我
换了个tp路由器 手机怎么不能看视频
狗宝宝好还是鸡宝宝好
怎么样免谷歌
霓裳羽足浴地址有知道的么?有点事想过去
梁启超认为“戊戌维新虽时日极短,现效极少,
网易帐号说是账号名和密码不正确 但是确实是
对贱人要发表的说说
简析"贵广高铁"沿线桥梁或隧道多的原因
请问,(无忧VS贝贝)!!都用过的进~~~,无忧和贝
推荐资讯
苹果5s电池容量是多大的呀,能用多久,第一次
是不是经历越多的人和事,内心就会越孤单越不
电镀的电镀液为什么要采用含有镀层金属离子的
学校宿舍床板很不平整该怎么办!! 自从前天
MacBookAir 下载压缩文件为什么打不开?
心情不好能怀孕吗
保姆的推荐信点么写?
情人节和结婚纪念日已婚人士适合过哪个?
六脉神剑是哪六剑?
请问,你知道CECT手机的质量咋的?,A1000的速
含维生素A丰富的食物有(  )。A.动物内脏B
白开水喝多了会中毒吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?