簡體   English   中英

Eclipse - Java模板 - 靜態導入 - 模板變量''具有不兼容的類型

[英]Eclipse - Java Template - static import - Template variable '' has incompatible types

我想為JUnit4測試方法創建一個Java代碼模板(Preferences - > Java - > Editor - > Templates),該方法還應該包含靜態導入以使用一些hamcrest匹配器。

${:importStatic('org.hamcrest.MatcherAssert.*')}
${:import(org.junit.Test)}
@Test
public void ${testName}() throws Exception {    
    ${cursor} 
}

我無法保存代碼模板 - 顯示錯誤消息:

模板變量''具有不兼容的類型。

它可以使用import語句正常工作,因此語法似乎是正確的。

如何將兩個import語句組合在一起?

這應該工作:

${imp:import(org.junit.Test)}
${impst:importStatic('org.hamcrest.MatcherAssert.*')}

@Test
public void ${testName}() throws Exception {    
    ${cursor} 
}

編輯:如果我沒記錯的話,第一部分充當名稱變量,第二部分是類型(import,var,...)。 例如,以下也不起作用

${:newType(org.eclipse.swt.widgets.ExpandItem)}
if (${:var(boolean)}) {
    ${cursor}
} else {

}

你可以從我的答案中刪除imp或impst,它仍然可以工作。 在模板中,您可以對變量執行多個操作,一個很好的示例是List模板。

    ${type:newType(org.eclipse.swt.widgets.List)} ${list:newName(org.eclipse.swt.widgets.List)}= new ${type}(${parent:var(org.eclipse.swt.widgets.Composite)}, ${style:link('SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL', 'SWT.MULTI | SWT.V_SCROLL', SWT.MULTI, 'SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL', 'SWT.SINGLE | SWT.V_SCROLL', SWT.SINGLE)});
${list}.setLayoutData(new ${gridDataType:newType(org.eclipse.swt.layout.GridData)}(SWT.${horizontal:link(FILL, BEGINNING, CENTER, END)}, SWT.${vertical:link(FILL, TOP, CENTER, BOTTOM)}, ${hex:link(true, false)}, ${vex:link(true, false)}));
${list}.setItems(${word_selection}${});
${imp:import(org.eclipse.swt.SWT)}${cursor}

他們在這里對list變量執行多個操作

西蒙斯的回答對我有用。

“幫助 - Eclipse平台”解釋了靜態導入,它還提供了一個示例。 對於版本Photon,您可以在這里查看:

https://help.eclipse.org/photon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Fconcepts%2Fconcept-template-variables.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM