【问题标题】:Foreach assist using class-variables?Foreach 辅助使用类变量?
【发布时间】:2013-08-22 07:35:55
【问题描述】:

如果我将 fore-each-template 用于以下值

  • foreCtrl+空格Enter 在第 5 行输入
  • foreCtrl+空格Enter TabTabDownEnter在第8行
  • foreCtrl+空格Enter TabTabDownDownEnter在第11行

将生成以下代码(由 Eclipse 4.2)

01  public static String[] c = new String[]{"hi"};
02  public static void test() {
03   String[] a = new String[]{"hi"};
04   int[] b = new int[]{2};
05   for (String string : a) {
06     // 1. fine
07   }
08   for (int i : b) {
09     // 2. fine too
10   }
11   for (iterable_type iterable_element : c) {
12     // 3. not resolved?
13   }
14 }

现在的问题:

  1. 为什么 Array c 不能解析它的 Array-Type 和名称?
  2. 这可能是 Eclipse 中的错误吗?

【问题讨论】:

  • 有趣。使用 Kepler,我根本无法选择使用 c。我只得到ab
  • 这可能属于programmers.stackexchange.com吗?
  • 酷,看来你是对的
  • programmers.stackexchange.com 是针对概念性问题的,对吧?

标签: java eclipse eclipse-templates


【解决方案1】:

在模板中,

while (${condition:var(boolean)}) {
    ${line_selection}${cursor}
}

${condition:var(boolean)} 匹配成员和静态成员。 请注意, var 的内容辅助说:

${id:var(type[,type]*)} 对字段、局部变量或参数求值 在当前范围内可见,它是 any 的子类型 给定的类型。如果未指定类型,则任何非 原始变量匹配。

foreach的模板中,模板变量不同:

for (${iterable_type} ${iterable_element} : ${iterable}) {
    ${cursor}
}

${iterable} 变量的文档说明:

一个可迭代的(数组或 java.lang.Iterable)

没有具体说明是否应提议(静态)成员。

编辑:this documentation page 声明

${iterable} 评估当前范围内可见的可迭代或数组的提案。

所以根据文档,这实际上可能是一个错误。其实已经被举报了here

【讨论】:

    猜你喜欢
    • 2014-04-26
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多