Java 对自定义类上的泛型类型使用迭代器

Java 对自定义类上的泛型类型使用迭代器,java,generics,iterator,Java,Generics,Iterator,结果:无法从静态上下文引用非静态类项 结果:无法从静态上下文引用非静态类Deque2.ListIterator 编辑: 我调用的是类而不是方法。这项工作: 迭代器it=deq.Iterator 我想,因为迭代器中返回的实例的类型是ListIterator,所以我需要用“it”声明该类型。您已经将类声明为 MyClass deq = new MyClass(); ListIterator it = deq.iterator(); 在其声明中,定义了一个新类型变量Item。此类型变量绑定到实例或

结果:无法从静态上下文引用非静态类项

结果:无法从静态上下文引用非静态类Deque2.ListIterator

编辑:

我调用的是类而不是方法。这项工作:

迭代器it=deq.Iterator


我想,因为迭代器中返回的实例的类型是ListIterator,所以我需要用“it”声明该类型。

您已经将类声明为

MyClass deq = new MyClass();
ListIterator it = deq.iterator(); 
在其声明中,定义了一个新类型变量Item。此类型变量绑定到实例或解析为实例引用值的表达式

它不能在静态上下文中使用,因为静态上下文中不存在实例


对于ListIterator,这是一个内部类。它与类型变量有相同的问题。它需要一个实例才能工作。

这里有一个答案:否决是因为?我清楚地列出了我的问题,并准确地显示了我遇到的错误。Jeez.我承认给出该错误的泛型Item type参数在堆栈溢出上并不常见,但内部类却很常见。对不起,我没有投票反对你,我只给了你一个答案,这个答案被确定为这个错误消息的答案。它可能适用于您的案例,也可能不适用于您的案例,但您可能至少应该添加Item类的类定义存根,以便我们可以查看它是否真的是非静态的并嵌入到另一个类中。@NobuGames它是泛型的。看看这个链接:定义在哪里?
MyClass <Item> deq = new MyClass();
ListIterator<Item> it = deq.iterator(); 
MyClass deq = new MyClass();
ListIterator<Item> it = deq.iterator(); 
MyClass deq = new MyClass();
ListIterator it = deq.iterator(); 
public class MyClass<Item> implements Iterable<Item> {