关于一个小错误: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: 如果本地类库中的类 和 其它类库中的类重名,请使用完整的包名;若使用通配符,则就会自动使用本地类库中的类。

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