为什么importStatic Eclipse模板变量需要命名空间?

时间:2013-12-31 14:58:31

标签: java eclipse templates import

我正在尝试使用Eclipse模板(在Juno中)为常规和静态导入生成语句并遇到奇怪的事情。

咨询docs后,我的第一次尝试是

${:import(org.junit.Test)}                //ok
${:importStatic('org.junit.Assert.*')}    //gives error

:import工作正常,但:importStatic会出现此错误

  

模板变量''具有不兼容的类型

但上面的语法正是它在docs中的呈现方式,其中:importStatic与左侧列中的:import相同。

我注意到右侧列中的示例,该列在is前面使用了名称空间:importStatic

${is:importStatic(...

所以我添加了名称空间,错误消失了,模板正常工作

然而,我对这个神奇的无法解释的is命名空间有点疑惑 - 我无法在docs中找到任何解释。事实上,玩一下它似乎没有什么特别的is - 结果 :importStatic前面的任何命名空间都可以。

${donkey:importStatic(...     //works fine...

那么,有没有人知道 :importStatic 需要名称空间的原因,而不是 :import

如果没有命名空间只是模板编辑器中的错误或错过了什么,错误和事实是不会保存的吗?

1 个答案:

答案 0 :(得分:1)

这不是命名空间,它是模板中使用的变量的id - 除了importimportStatic不需要变量。

我相信您所看到的是Eclipse bug 336989,其中忽略两个语句中的ID会导致此问题。您已经发现解决方法是指定一个id,即使它不是必需的。