首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StringTemplate找不到getter

StringTemplate找不到getter
EN

Stack Overflow用户
提问于 2013-03-01 17:05:32
回答 1查看 558关注 0票数 3

我使用的是ST-4.0.7.jar,我的模板如下所示:

代码语言:javascript
复制
backtrack_result(btresult) ::=<<
    <backtrack-result>
        <pattern id="$btresult.pattern.id$">$btresult.pattern.description$</pattern>
        <file>$btresult.file.file.path$</file>
        <line>$btresult.codeline.lineNr$</line>
        <method>$btresult.codeline.method.name$</method>        
    </backtrack-result>
>>

但是,当我查看输出文件时,我只需要

代码语言:javascript
复制
<method></method>

在BTResult中:

代码语言:javascript
复制
public CodeLineInterface getCodeline() {
    return cl;
} 

在CodeLine中:

代码语言:javascript
复制
public MethodInterface getMethod() {
    return method;
}

在方法上:

代码语言:javascript
复制
public String getName() {
    return name;
}

我在代码线对象中为getMethod方法设置了一个断点,并且它从未被调用。因此,我得出结论,在某种程度上,字符串模板在解决正确的getter方面存在问题。

我添加了一个STErrorListener,发现ST抛出了以下错误:

代码语言:javascript
复制
STReportGenerator  - context [/report /backtrack_results /backtrack_result] 5:19 no such property or can't access: ju.no.need.toknow.BTResult.method
Caused by: org.stringtemplate.v4.misc.STNoSuchPropertyException: no such property: ju.no.need.toknow.BTResult.method
    at org.stringtemplate.v4.misc.ObjectModelAdaptor.throwNoSuchProperty(ObjectModelAdaptor.java:106)
    at org.stringtemplate.v4.misc.ObjectModelAdaptor.lookupMethod(ObjectModelAdaptor.java:99)
    at org.stringtemplate.v4.misc.ObjectModelAdaptor.getProperty(ObjectModelAdaptor.java:67)
    at org.stringtemplate.v4.Interpreter.getObjectProperty(Interpreter.java:1158)

有什么特别让我困惑的:当模板说它应该得到btresult.codeline.method.name?时,它为什么要尝试解析到BTReult.method?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-06 12:27:24

好的。这是我自己的愚蠢之处:虽然我确实修复了我的模板,但代码实际上使用了一个旧模板,所以在我看来,我的所有修复程序都不起作用。OSI第8层问题;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15163042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档