我正在尝试使用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需要名称空间?

错误和事实(如果没有名称空间就无法保存)仅仅是模板编辑器中的错误,还是我丢失了某些东西?

最佳答案

这不是名称空间,它是模板中使用的变量的ID-除了importimportStatic不需要变量之外。

我相信您看到的是Eclipse bug 336989,其中在两个语句上遗漏了id会导致此问题。如您所见,解决方法是即使不需要ID,也要指定ID。

09-26 20:54