让 Eclipse 自动静态导入 类

Have Eclipse automatically import classes statically

当我创建 JUnit 测试时,Eclipse 会自动为我导入 assertEquals

在我目前的代码中,我经常写这样的语句:

Arrays.stream(columns).collect(toCollection(ArrayList::new));

Eclipse 抱怨缺少 toCollection():

The method toCollection(ArrayList::new) is undefined for the type ...

当我手动添加 import static java.util.stream.Collectors.toCollection; import 至少这个警告消失了。但是我收到一个新警告:

The import java.util.stream.Collectors.toCollection is never used

基本上我有两个问题:

如果这很重要:我使用当前版本的 STS 4.4.1

要以与 assertEquals 相同的方式导入静态方法,请将其 class 添加到列表中:Window -> 首选项 -> Java - > 编辑器 -> 内容辅助 -> 收藏夹。

Eclipse 然后会在您开始输入时建议那些 classes 的静态方法。

关于未使用的导入: 我在我的 Eclipse 中没有看到这种行为。 相反,与 import static java.util.stream.Collectors.toCollection; 在我的代码中使用 toCollection ,例如: ...collect(toCollection(ArrayList::new)), 没有警告。

注意:如果toCollection是用class引用的,比如: ...collect(Collectors.toCollection(ArrayList::new)),然后 Eclipse 对 toCollection 的静态导入产生警告。这是正确的,因为确实没有使用导入(相反,收集器 class 的导入用于解析 class 和方法)。难道是这样吗?