我正在尝试使用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
?
如果没有命名空间只是模板编辑器中的错误或错过了什么,错误和事实是不会保存的吗?
答案 0 :(得分:1)
这不是命名空间,它是模板中使用的变量的id - 除了import
和importStatic
不需要变量。
我相信您所看到的是Eclipse bug 336989,其中忽略两个语句中的ID会导致此问题。您已经发现解决方法是指定一个id,即使它不是必需的。