我被分配了一个任务,创建一个列表列表,在列表中,我应该能够使用“for each”类型的“for”循环遍历列表,而不是为迭代器构建一个构造函数。问题是,当我阅读下面的代码时,我得到错误消息“只能迭代一个数组或java.lang.Iterable的一个实例”。以下是代码:
public static void main(String[] args) {
GList<InnerList> list = new GList<InnerList>();
GList<InnerList> numList = new GList<InnerList>();
InnerList lst = new InnerList ();
Scanner sc = new Scanner(System.in);
String answer;
while (true){
System.out.println ("Do you want to create a list (y/n)? ");
answer = sc.next();
if (answer.equals("y")){
System.out.println("Enter the name of the list: ");
answer = sc.next();
lst.setName(answer);
if (list.isEmpty()== true){
list.insertFirstItem(lst);
}
else {
list.insertNext(lst);
}
}
while (true){
System.out.println("Do you want to enter a number (y/n)?");
answer = sc.next();
if (answer.equals("y")){
System.out.println("Enter Number: ");
answer = sc.next();
try {
int num1 = Integer.parseInt(answer);
lst.setInner(num1);
if (list.isEmpty() == true){
list.insertFirstItem(lst);
}
else {
list.insertNext(lst);
}
}
catch (NumberFormatException e){
System.out.println("You must enter an number! " + e);
sc.close();
}
}
return;
}
}
for (GList<InnerList> ilName : list){ //here are my error msgs. I also tried replacing GList<InnerList> with 'InnerList' and String.
for(GList<InnerList> ilInts : list){
System.out.println(ilName);
System.out.println(ilInts);
}
}
}
非常感谢。
这是一个语法错误,而coorrect语法是,
for(InnerList ilName : GList) {
for(InnerList ilInts : GList) {
System.out.println(ilName);
System.out.println(ilInts);
}
}
希望这能有所帮助
它不被认为是java的一个实例。lang.Iterable
,因为它没有实现接口java。lang.Iterable
。就这么简单。将其声明更改为
public class GList<T> implements Iterable<T>
你可以使用foreach循环。但是既然list
是GList的一个例子
for (InnerList innerList : list) {
...
}
问题内容: 有人可以向我解释为什么明显需要为ForEachLoop实例分配通用类型吗? 为什么编译器会抱怨: 类型不匹配:无法从元素类型Object转换为String ? JDK 1.5.0_09 问题答案: 这是一个很常见的错误: 应该 如果您使用原始类型(不应这样做),则编译器将擦除该实例的所有通用信息,即使它不是类型参数T,也使其与1.5版之前的代码兼容。 仅在使用Java 1.4或更低版本
如何将此迭代器与泛型类型一起使用?以下是我在“main”函数中尝试的方法: 结果是:<代码>无法从静态上下文引用非静态类项 结果是:<代码>无法从静态上下文引用非静态类项 结果: 编辑: 我调用的是类而不是方法。这项工作: 迭代器it=deq。迭代器(); 我认为,由于iterator()中返回的实例的类型是ListIterator,因此我需要使用该类型声明“it”。
问题内容: 我正在尝试采取以下措施: 和 我要坚持的是我需要在Game和Player界面中进行哪些更改才能使仿制药正常工作(我停顿了一下,但头上还有些毛:-)特别是,我迷上了Player需要在哪里进行操作知道游戏的类型,并且游戏需要知道玩家的类型。 问题答案: 这不是泛型问题(Game未键入)。 这是一个继承问题。尝试这个:
我在我的一个实用程序类中有一个方法,它接受一个集合和一个类对象,并返回一个Iterable实例,该实例可以遍历作为指定类实例的集合的所有成员。其签名为: 这对于大多数用例都非常有效,但现在我需要将其与泛型类
我想在列表中从0到结尾无限迭代,但在下一个循环中,我想从1开始到结尾加0,下一个循环将从2开始到结尾加0,1,直到最后一个项目,它将再次从0开始到结尾。 这是我的代码: 这就是我目前提出的解决方案。这远非完美。 我想要的结果是: 等等
我需要将包含类型为Pair的对象的列表序列化为xml 首先,我创建了一个类PairList来保存对的列表,然后我创建了一个实际的类,它表示一对两个值,key和value。 然后,我尝试序列化它: 不幸的是,我遇到了一个异常:。欢迎任何关于如何避免此异常并序列化该类的想法。 如果我选择不序列化ttype和utype字段(通过将其设置为受保护或私有),则序列化有效。我不明白为什么它不想序列化类型字段。