2013-08-09 7 views
7

Ich möchte eine Java Code Vorlage (Einstellungen -> Java -> Editor -> Templates) für eine JUnit4 Testmethode erstellen, die auch einen statischen Import beinhalten soll um einige Hamcrest Matcher zu benutzen.Eclipse - Java Vorlage - statischer Import - Template Variable '' hat inkompatible Typen

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

ich nicht in der Lage bin, den Code Vorlage zu speichern - eine Fehlermeldung angezeigt:

Template Variable '' hat inkompatible Typen.

Es funktioniert gut mit beiden Import-Anweisung, so scheint die Syntax korrekt zu sein.

Wie kann ich die beiden Importanweisungen kombinieren, um zusammenzuarbeiten?

Antwort

8

sollte diese Arbeit:

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

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

edit: Wenn ich fungiert als Namensvariable korrekt die ersten Teile erinnern und der zweite Teil ist der Typ (Import, var, ...). Zum Beispiel auch die folgenden nicht

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

} 

arbeiten Sie könnten aus meiner Antwort imp oder impst entfernen und es würde auch noch arbeiten. In einer Vorlage können Sie mehrere Aktionen für eine Variable ausführen, ein gutes Beispiel ist die Listenvorlage.

${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} 

Hier ausführen sie mehrere Operationen auf der Liste Variable

+1

Können Sie uns erklären, warum das funktioniert? – Behe

+0

bearbeitet meine Antwort –

+0

Danke, das hat funktioniert. – Behe

Verwandte Themen