【发布时间】:2013-11-17 03:25:45
【问题描述】:
所以我正在做一个项目,其中一个案例要求用户输入一种成分,它会打印出所有包含该成分的食谱。
问题是“修改 searchByIngredient 以返回列表变量而不是单个食谱。列表将包含与搜索条件匹配的所有食谱。”
我的问题是我无法让它打印所有包含该成分的食谱。它只打印找到的第一个。
这是原始代码。它只打印出它找到的第一个包含用户正在搜索的成分的食谱。
public Recipe searchByIngredient(String target) {
for (Object ingred : mList) {
Recipe i = (Recipe) ingred;
if (i.hasIngredient(target)) {
return i;
}
}
return null;
}
这是我尝试编写的代码,以便打印出所有包含该成分的食谱。
public List searchByIngredient(String target) {
for (Object ingred : mList) {
Recipe i = (Recipe) ingred;
if (i.hasIngredient(target)) {
return (List) i;
}
}
return null;
}
它会输出:
Please enter an ingredient name:
avocado
Exception in thread "main" java.lang.ClassCastException: Recipe cannot be cast to List
at RecipeBook.searchByIngredient(RecipeBook.java:40)
at RecipeProgram.main(RecipeProgram.java:125)
Java Result: 1
任何帮助将不胜感激!
【问题讨论】: