[英]Incompatible Types, but it doesn't make sense(Java)
我正在嘗試遍歷一個集合,並且想將下一個元素保存在一個臨時變量中,但這給了我不兼容類型的編譯錯誤。
Iterator it = this.iterator();
E next = it.next();
next()返回通用類型E,下一個返回E類型。為什么會給我錯誤?
由於未提供類型參數,因此您將Iterator
用作原始類型。 當您使用原始類型時,所有相關的通用類型都將被刪除 。 換句話說,在方法參數,返回類型等中對類類型變量的任何使用都將成為Object
或上限。
你可能想要
Iterator<E> it = this.iterator();
E next = it.next();
如果this.iterator()
的返回類型為Iterator<E>
。
您正在使用原始類型迭代器,將其與泛型一起使用,那么它將允許編譯
Iterator<E> it = this.iterator();
E next = it.next();
使用泛型或類型轉換到對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.