我正在尝试解决此错误,但由于某种原因,无法找到问题来解决它。我在此代码中使用Collection
。如果有人能指出我实际上缺少的东西,那将是一个很大的帮助。
Collection challenges = null;
Map challengesMap = new HashMap<String,String>();
ForgotPasswordManager forgotPwdMgr = new ForgotPasswordManager(platform);
System.out.println("after ForgotPasswordManager(platform)...before getSecretQuestion()");
challenges = forgotPwdMgr.getSecretQuestion(userID);
System.out.println("after getSecretQuestion()...");
for (Object challenge : challenges) {
String challengeStr = (String)challenge;
System.out.println("doGetChallenges()...ChallengeStr = " + challengeStr);
challengesMap.put(challengeStr.trim(), "");
}
我收到此错误Can only iterate over an array or an instance of java.lang.Iterable
在线:for (Object challenge : challenges)
答案 0 :(得分:3)
此处引用的Collection
类型:
Collection challenges = null;
不是扩展java.util.Collection
接口的Iterable
接口
否则您将没有此错误消息:
只能遍历数组或java.lang.Iterable
的实例
在这一行:
for (Object challenge : challenges) {
您正在使用自定义Collection
课程。
因此,要解决您的问题,请自定义自定义Collection
类实现Iterable
或更简单:使用JDK java.util.Collection
子类。