我正在尝试使用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-除了import
和importStatic
不需要变量之外。
我相信您看到的是Eclipse bug 336989,其中在两个语句上遗漏了id会导致此问题。如您所见,解决方法是即使不需要ID,也要指定ID。