不兼容的类型,但它没有';没有意义(Java)
我试图遍历一个集合,并希望将下一个元素保存在一个临时变量中,但它给了我一个不兼容类型的编译错误不兼容的类型,但它没有';没有意义(Java),java,generics,iterator,incompatibletypeerror,Java,Generics,Iterator,Incompatibletypeerror,我试图遍历一个集合,并希望将下一个元素保存在一个临时变量中,但它给了我一个不兼容类型的编译错误 Iterator it = this.iterator(); E next = it.next(); next()返回泛型类型E,next的类型为E。为什么它会给我错误?您正在使用迭代器作为原始类型,因为您没有提供类型参数。当您使用原始类型时,任何相关的泛型类型都将成为它们的类型。换句话说,在方法参数、返回类型等中使用类类型变量会变成Object或上限 你可能想要 Iterator<E>
Iterator it = this.iterator();
E next = it.next();
next()返回泛型类型E,next的类型为E。为什么它会给我错误?您正在使用
迭代器作为原始类型,因为您没有提供类型参数。当您使用原始类型时,任何相关的泛型类型都将成为它们的类型。换句话说,在方法参数、返回类型等中使用类类型变量会变成Object
或上限
你可能想要
Iterator<E> it = this.iterator();
E next = it.next();
Iterator it=this.Iterator();
E next=it.next();
如果this.iterator()
的返回类型为iterator
,则使用iterator
作为原始类型,因为您没有提供类型参数。当您使用原始类型时,任何相关的泛型类型都将成为它们的类型。换句话说,在方法参数、返回类型等中使用类类型变量会变成Object
或上限
你可能想要
Iterator<E> it = this.iterator();
E next = it.next();
Iterator it=this.Iterator();
E next=it.next();
如果this.iterator()
的返回类型为iterator
您使用的是原始类型迭代器,请将其与泛型一起使用,然后它将允许编译
Iterator<E> it = this.iterator();
E next = it.next();
Iterator it=this.Iterator();
E next=it.next();
您使用的是原始类型迭代器,将其与泛型一起使用,然后它将允许编译
Iterator<E> it = this.iterator();
E next = it.next();
Iterator it=this.Iterator();
E next=it.next();
使用泛型或其他类型转换到对象。使用泛型或其他类型转换到对象。这很有意义。请注意错误消息-提示应该是关于对象的。这很有意义。请注意错误消息-提示应该是关于对象的。谢谢。真不敢相信我竟然没有意识到这一点。谢谢@用户3391296这一点都不明显。类型擦除不是一个简单的概念。两种都不是生的,谢谢。真不敢相信我竟然没有意识到这一点。谢谢@用户3391296这一点都不明显。类型擦除不是一个简单的概念。两者都不是原始类型。