關於一個小錯誤:Cannot infer type arguments for LinkedList,引發我對引包的小思考

問題的出現

當時我正在寫二叉樹的層序遍歷,利用了隊列來實現的,我想用的是 java.util 包中的 Queue 接口和 LinkedList 泛型類,所以我就直接 import 了 java.util 包:
在這裏插入圖片描述
然而呢,當我寫完了之後,發現了這個問題:Cannot infer type arguments for LinkedList<>;不能確定 LinkedList 的類型,我明明在Queue後加了明確的類型,有點抓頭了:
在這裏插入圖片描述
百度了一下,多是一些泛型無法使用之類的,連我都有點忽略這個細節了:在我的包中,自己定義了一個 Queue 接口,和 JDK 中的 Queue 重名了,然後將引包的方式具體化了,問題解決:
在這裏插入圖片描述

import引包的細節

包的出現本來就是爲了防止同名類混淆,同一個包中不允許出現同名類;我們引包的方式有兩種:

  1. 使用完整的包名: import java.util.Queue;
  2. 使用通配符來引入一個包中的多個類: import java.util.*;

Tips: 如果本地類庫中的類 和 其它類庫中的類重名,請使用完整的包名;若使用通配符,則就會自動使用本地類庫中的類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章