2013-08-09 3 views
7

JUnit4テストメソッドのJavaコードテンプレート(環境設定 - > Java - >エディタ - >テンプレート)を静的インポートいくつかのハムクレストマッチャーを使用する。Eclipse - Javaテンプレート - 静的インポート - テンプレート変数 ''に互換性のない型があります

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

私は、コードテンプレートを保存することはできませんよ - エラーメッセージが表示されます。

テンプレート変数は「」互換性のないタイプがあります。

いずれのimport文でもうまく動作するため、構文が正しいようです。

2つのインポートステートメントを組み合わせて使用​​するにはどうすればよいですか?

答えて

8

これは動作するはずです:

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

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

編集:私が正しくリコール場合は、最初の部分が名前の変数として機能し、第二部は、タイプ(インポート、VAR、...)です。 例えば、以下はまた、あなたが私の答えからIMPまたはimpstを削除することができ、それはまた、まだ動作します

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

} 

を動作しません。 テンプレートでは、変数に対して複数のアクションを実行できます。たとえば、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} 

彼らはこの作品、なぜあなたが説明してもらえ

+1

変数リストに複数の操作を実行していますか? – Behe

+0

編集した私の答え –

+0

ありがとう、これは働いた。 – Behe

関連する問題