java,boolean函数,最后要有return才正确,为啥呢?

publicstaticbooleansearchduibi(){Testc=newTest();con=c.getConnection();try{sql=con.cr... public static boolean searchduibi() {
Test c = new Test();
con = c.getConnection();

try {
sql = con.createStatement();
res = sql
.executeQuery("select name from sysdatabases order by name ");
List<String> list = new ArrayList<String>();
while (res.next()) {
String listdbname = res.getString("name");
list.add(listdbname);
}
Iterator it = list.iterator();
if (it.hasNext()) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i) == "baite2008")
return true;
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
// return false; /////错哪了??非要在这加个return语句才不报错,为啥呢?

}
展开
 我来答
江湖人称王嘉嘉
2015-07-30 · TA获得超过1400个赞
知道小有建树答主
回答量:1047
采纳率:83%
帮助的人:625万
展开全部
因为如果你的Iterator it = list.iterator();
这一句it是空的,那么就不会执行到return true;

也就是说你的这个代码有可能会执行不到return的语句。所以不通过。

}
return false; //这里加一个就可以了。
} catch (SQLException e) {
匿名用户
推荐于2017-11-27
展开全部
嗯,你catch里面return false了,假如出现异常,肯定返回false,假如没有异常发生呢?肯定走try里面把,假如迭代器空的,没有任何元素;或者有元素,但是没有满足equals("baite2008")的又如何呢?这个时候哪来的return呢?还有,String是引用类型,比值用equals噢,不能用==
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
awydss
2015-07-30 · TA获得超过274个赞
知道小有建树答主
回答量:560
采纳率:0%
帮助的人:308万
展开全部
public static boolean searchduibi() {

try {
boolean b = true;
if (b) {
return true;
} else {
//这里需要加上,下边就不用 了
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
//if 需要else 返回值
// return false; /////错哪了??非要在这加个return语句才不报错,为啥呢?

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来咯龙年
2015-07-30 · TA获得超过171个赞
知道答主
回答量:43
采纳率:0%
帮助的人:21.9万
展开全部
注意看你的方法的返回类型,void表示没有返回值,
你这个public static boolean searchduibi() {。。。}方法,要求该方法必须返回一个boolean类型的值,否则会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式