让 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
基本上我有两个问题:
- 有没有一种方法可以自动添加静态导入而无需手动干预,就像 Eclipse 在 assertEquals 的情况下能够为我做的那样?
- 是否有(除了添加@SuppressWarning 之外)消除关于未使用导入的第二个警告的方法?
如果这很重要:我使用当前版本的 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 和方法)。难道是这样吗?
当我创建 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
基本上我有两个问题:
- 有没有一种方法可以自动添加静态导入而无需手动干预,就像 Eclipse 在 assertEquals 的情况下能够为我做的那样?
- 是否有(除了添加@SuppressWarning 之外)消除关于未使用导入的第二个警告的方法?
如果这很重要:我使用当前版本的 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 和方法)。难道是这样吗?