【问题标题】:How to get rid of StringTemplate warning "\n in string"如何摆脱 StringTemplate 警告“\n in string”
【发布时间】:2012-07-09 11:05:02
【问题描述】:

我正在使用 StringTemplate 4 生成一些 Java 源文件。

模板非常简单,例如:

QueryHandler(method) ::="
public class Obtenir<method.name>Handler extends QueryHandler\<List\<<method.name>Db>> implements IQueryHandler\<List\<<method.name>>>{
    private IQuery\<List\<<method.name>Db>> query;
    private <method.name>Converter converter;

    @Inject
    public Obtenir<method.name>Handler(IQuery\<List\<<method.name>Db>> query, <method.name>Converter converter, IStatisticsCollecter theStatsCollecter){
        super(theStatsCollecter);
        if(query == null){
            throw new IllegalArgumentException(\"The query argument cannot be null\");
        }
        if(converter == null){
            throw new IllegalArgumentException(\"Illegal argument for converter(null)\");
        }
        this.query = query;
        this.converter = converter;
    }

    public List\<<method.name>> handle(Object... params) throws JdbcException {
        final String method = \"obtenir<method.name>\";
        DaoQueryStatusCallable status = new DaoQueryStatusCallable();
        List\<<method.name>Db> result = invoke(query, status, method);
        return converter.convert(result);
    }

 }
"

代码更简单:

STGroup group = new STGroupFile("src/main/resources/QueryHandler.stg");
ST wsTemplate = group.getInstanceOf("QueryHandler");
wsTemplate.add("method", m);
System.out.println(wsTemplate.render());

模板行由 Unix EOL (\n) 分隔。 当我执行代码时,StringTemplate 发出警告“QueryHandler.stg 1:25: \n in string”。

结果是正确的,但我还是想去掉这条消息。

有人遇到过这个问题并且知道如何解决吗?

【问题讨论】:

    标签: stringtemplate stringtemplate-4


    【解决方案1】:

    t() ::= "..." 仅用于单行。请使用

    t() ::= <<
    ...
    >>
    

    获取多行模板。 叔

    【讨论】:

      猜你喜欢
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 2016-02-04
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多