我使用以下代码收到错误“Missing return statement”:
public String getAuthorFullName(String title)
{
for (Book authorName : inventory)
if (authorName.getTitle() != null)
{
return authorName.getAuthor().getName().getFullName();
}
else
{
return null;
}
}
我想返回o返回通过此标题编写书籍的作者的全名,如果没有带有此标题的书籍,或者如果title为null或“”,则返回null。
我试着把代码放到这样:
public String getAuthorFullName(String title)
{
for (Book authorName : inventory)
if (authorName.getTitle() != null)
{
return authorName.getAuthor().getName().getFullName();
}
return null;
但它总是返回列表中的第一个作者......
是的,有人能帮帮我吗?非常感谢。答案 0 :(得分:2)
尝试这样的事情
public String getAuthorFullName(String title)
{
for (Book authorName : inventory) {
if (authorName.getTitle() != null && authorName.getTitle().equals(title)) {
return authorName.getAuthor().getName().getFullName();
}
}
return null;
}
并始终使用大括号。没有它们,与它们生活在一起要容易得多。
答案 1 :(得分:0)
你的第一个案例是错过了一个返回语句,因为它是。考虑有一个空库存。因此for循环不会运行,也不会执行if语句或else语句。然后没有回复声明。
你的第二种情况有一个return语句,它不是for循环的一部分,因此是一个正确的java语法。但是你只检查getTitle() != null
。这就是每个案例都设置了标题,即使它是空的。
使用String.equals(String another)
检查字符串是否相等。所以你真正想做的是:
public String getAuthorFullName(String title){
for (Book authorName : inventory)
if (authorName.getTitle() != null && authorName.getTitle().equals(title))
return authorName.getAuthor().getName().getFullName();
return null;
}
答案 2 :(得分:0)
<datebox value="@bind(vm.myDate)" format="d/M/yyyy hh:mm"/>