2012-03-26 9 views
3

Wenn String mit 4.0.2 den folgenden Objektbau:String-4: Verwendung von '@' als Trennzeichen festlegen

ST st = new ST("@[email protected]", '@', '@'); 

die Ausnahme erzeugt:

1:8: '@' came as a complete surprise to me 
Exception in thread "main" org.stringtemplate.v4.compiler.STException 
    at org.stringtemplate.v4.compiler.Compiler.reportMessageAndThrowSTException(Compiler.java:213) 
    at org.stringtemplate.v4.compiler.Compiler.compile(Compiler.java:143) 
    at org.stringtemplate.v4.STGroup.compile(STGroup.java:427) 
    at org.stringtemplate.v4.ST.<init>(ST.java:142) 
    at org.stringtemplate.v4.ST.<init>(ST.java:136) 

Gibt es eine besondere Art und Weise Verwenden Sie das Zeichen '@' als benutzerdefiniertes Trennzeichen oder ist es einfach nicht erlaubt?

Antwort

3

@ wird zum Definieren von Bereichen verwendet und ist ein reservierter Operator.

+0

Gut zu wissen, danke Terence –

+0

Es könnte eine Idee sein, eine Ausnahme auszulösen, wenn man den Konstruktor mit '@' als Trennzeichen aufruft. Es dauerte eine ganze Weile, bis ich herausfand, dass dies der Grund war, warum es nicht funktionierte. – wvdz

+0

Guter Punkt. Ein Problem wurde https://github.com/antlr/stringtemplate4/issues/84 hinzugefügt –