12

对于泛型类,我通常更喜欢静态方法而不是构造函数,以避免繁琐的冗余类型参数(下面给出的示例用于说明)。

但是当使用自动补全时,Eclipse 总是建议使用 type 参数,比如:

example(ctrl+空格)Example<T>

然后我必须手动删除<T>,而是添加我的静态方法,比如Example.new(). 是否有可能改变这种行为或完全不同的方便快捷方式以获得更好的工作流程?(我仍在使用 Eclipse 3,这在 4 中是否已更改?)

static final class Example<T> {

    /** Private, use factory method instead. */
    private Example() {
    }

    public static <T> Example<T> create() {
        return new Example<T>();
    }
}

public static void main(String[] args) {
    Example<Integer> example = Example.create();
}
4

3 回答 3

3

我认为这是 eclipse 中的一个错误,如此处所示自动完成插入类型参数占位符过于激进

你可以看看这个它可以帮助你Eclipse 和 Generic Types

于 2013-06-11T13:28:10.253 回答
3

一直被这件事困扰着,我刚刚注意到,如果你按“。”完成。而不是“返回”它完成类型名称。所以

  • Exam<ctrl+space>.完成以Example.完成对话框打开建议类的字段和方法。
  • Exam<ctrl+space><return>完成Example<T>并关闭完成对话框。

我没有看到退格键起作用的任何证据。

于 2018-11-05T14:43:58.803 回答
1

如果在按下 (ctrl-space) 后立即按下退格键两次,Eclipse 将删除整个类型参数子句。这是为了解决https://bugs.eclipse.org/bugs/show_bug.cgi?id=301990而实现的。

这并不完美 - 我宁愿 eclipse 只在类型名称前面带有 new 时添加类型参数子句,但它至少使它易于管理。

于 2016-06-15T18:10:07.340 回答