在运行时动态增加 SafeHtmlTemplates 变量值

Dynamically increment SafeHtmlTemplates variable value during runtime

是否可以在 运行 时间内增加(或总体上更改)界面的附加值?比如用integer作为变量,是否可以在添加后自增变量?

假设我有 SafeHtmlTemplates 接口:

public interface MyTemplate extends SafeHtmlTemplates {
    @Template("<div id=\"{0}\"></div>") 
    SafeHtml temp(Integer id);
}

如果我要使用它:

MyTemplate tpls = GWT.create(MyTemplate.class);

for (int i = 0; i < 2; i++) {
    tpls.temp(i);
}

我会得到:

<div id="0"></div>
<div id="1"></div>

不过我想得到:

<div id="1"></div>
<div id="2"></div>

通过在以某种方式添加 {0} 之后递增它(类似于 {0} + {offsetVariable},到目前为止我认为这是不可能的(或者我只是无法弄清楚如何做到这一点)。

有什么想法吗?

您可以像这样使用助手 class:

public class MyTemplateHelper implements MyTemplate {

    private MyTemplate tpls = GWT.create(MyTemplate.class);

    @Override
    public SafeHtml temp(Integer id) {
        return tpls.temp(id + 1);
    }
}

请注意,MyTemplateHelper 可以实现 MyTemplate

比较用法:

MyTemplate tpls;

tpls = GWT.create(MyTemplate.class);    // original template class
for(int i = 0; i < 2; i++)
    tpls.temp(i);

//  you'll get:
//  <div id="0"></div>
//  <div id="1"></div>

tpls = new MyTemplateHelper();          // helper class
for(int i = 0; i < 2; i++)
    tpls.temp(i);

//  you'll get:
//  <div id="1"></div>
//  <div id="2"></div>