【问题标题】:Eclipse 'Anonymous Inner Type' - autocompleteEclipse '匿名内部类型' - 自动完成
【发布时间】:2011-04-05 18:37:51
【问题描述】:

有时我倾向于使用 eclipse (3.5) 中的自动完成功能来处理匿名内部类型。出于某种原因,eclipse 总是把结尾括号和分号放在错误的顺序上。一个小例子:

button.addActionListener( new Act... ) // <-- Pressing Autocomplete (strg+space)

结果:

button.addActionListener( new ActionListener()
{

  @Override
  public void actionPerformed( ActionEvent e )
  {
    // TODO Auto-generated method stub

  }
};) // <-- why?

在eclipse的编码模板中没有发现任何地方。我还不能切换到 3.6,尽管我不知道是否已经“修复”了(如果这甚至应该是一个错误),因为 eclipse 可能只是不知道它必须使用自动完成后面的括号。猜测处理有点复杂,因为他不会检查自动完成后面的字符,所以他不能使用结尾括号?如果我错了,请纠正我。

我想我只是度过了糟糕的一天(普通的星期一!),这就是为什么它现在让我很生气,但也许有人知道如何影响这种行为?

您好, 梅内

【问题讨论】:

    标签: java eclipse templates autocomplete


    【解决方案1】:

    然后试试这个(无论如何它可能是更好的风格!):

    ActionListener actionListener = new Act...
    button.addActionListener(actionListener);
    

    这就是我认为他们可能想到的(因为在这种情况下分号很有用)。但是,如果 Helios 像 Skip Head 建议的那样通过省略分号来解决此问题,那么他们似乎很难确定您是否在括号内书写 - 鉴于您的代码在此阶段尚未编译。

    【讨论】:

    • 我也想过那个解决方案,但我通常会尽量避免使用局部变量,如果它们不是真的必要的话,除了阅读建议。但在这种情况下,我认为它仍然读起来很好,直接添加它。
    • 在没有过多讨论风格的情况下,我将支持我的断言,即以这种方式使用局部变量可以让您更轻松地维护代码,类似于总是在 if 或循环结构中使用大括号:它们可以在需要时使用;它们易于阅读,因为每个语句一次只做一件事;并且编译器无论如何都会(可能)以相同的方式进行优化。
    【解决方案2】:

    它似乎(在某种程度上)在 Helios (3.6) 中工作。它根本没有放置分号。

    【讨论】:

    • +1。同意,不再发生在 Helios 中,也许这就是为什么它不再那么困扰我的原因。 :-)
    【解决方案3】:

    猜我只是度过了糟糕的一天(常见 星期一!),这就是为什么它让我烦恼 现在,但也许有人有 知道如何影响这种行为?

    使用 Eclipse 提交错误。

    这种行为确实让我有些困扰,但还没有到提交关于它的错误的程度。

    【讨论】:

    • 对我来说也是如此,但由于它似乎已在 helios 中修复,因此不再值得尝试! ;)
    猜你喜欢
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 2012-04-09
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    相关资源
    最近更新 更多