簡體   English   中英

不兼容的類型,但沒有意義(Java)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM