【发布时间】:2014-05-18 07:33:17
【问题描述】:
假设我有以下不完整的代码:
public class Foo<Type> {
public Foo() {
List<Type> list = new ArrayList|
}
}
ArrayList 后面的竖线(“|”)表示当前光标位置。
现在,如果我按 Ctrl+Space 并让 Eclipse 自动完成对 ArrayList 的构造函数调用,它会生成以下行:
List<Type> list = new ArrayList<Foo.Type>();
并立即报错“Foo.Type cannot be resolve to a type”。
这给我留下了几个问题:
为什么 Eclipse 在自动完成的泛型参数中包含 Foo.?这是一个错误吗?这样做有什么原因吗?可以关闭吗?最后:为什么Foo.Type不能解决???
【问题讨论】:
-
通常泛型类型变量使用单个字母,例如
<T>而不是<Type>,因为第二种形式看起来像是在引用一个名为Type的实际类。 Eclipse 可能有一个错误,并且在这种情况下会因为这个原因而感到困惑。如果改为<T>,问题会消失吗? -
@WilliamPrice 有趣的想法。不幸的是,将其更改为
T并不能解决问题。也许我会将它报告给 Eclipse 错误跟踪器。他们可能有解决方案或意见。
标签: java eclipse generics content-assist