【问题标题】:Eclipse auto completion with generic classes and static methodsEclipse 使用泛型类和静态方法自动完成
【发布时间】:2013-06-07 05:27:31
【问题描述】:

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

但是在使用自动补全的时候,Eclipse 总是会提示类型参数,比如:

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();
}

【问题讨论】:

    标签: java eclipse generics autocomplete


    【解决方案1】:

    我认为这是 Eclipse 中的一个错误,如此处所示Auto complete inserts type parameter placeholders too aggressively

    你可以看看这个它可能对你有帮助Eclipse and Generic Types

    【讨论】:

    • 感谢您提供票证链接,因此我至少可以跟踪有关该问题的任何新闻!
    • 您找到解决问题的方法了吗?
    • 不,仍然困扰着我(除了其他事情)。但我终于购买了 IntelliJ 的许可证,应该最终做出转换。
    【解决方案2】:

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

    • Exam&lt;ctrl+space&gt;. 完成到 Example. 并打开完成对话框,建议类的字段和方法。
    • Exam&lt;ctrl+space&gt;&lt;return&gt; 完成到 Example&lt;T&gt; 并关闭完成对话框。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 谢谢,这似乎是相当新的!但是,我认为您发布的链接是一个完全不同的问题?
      猜你喜欢
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2015-03-09
      • 2014-09-18
      相关资源
      最近更新 更多