【问题标题】:Evaluating the Macro value in java在java中评估宏值
【发布时间】:2011-06-27 10:42:18
【问题描述】:

以这个场景为例,

在字符串缓冲区中,我连续追加字符串,例如

 int a=10;
 sb.append("if("+a+">"+$b+"){\"checked\"}");

$b 是一个宏 最后根据条件满足字符串"checked"添加 如何评估 if 条件,因为同时评估 $b 值 作为 $b (最终回复为价值)请帮助我。让我知道 如果您有任何疑问。

  public static String getStringUsingMacro(String source,HashMap hm)
      throws Exception{
WebMacro wm = new WM();
Context context=wm.getContext();

Iterator it=hm.keySet().iterator();
while(it.hasNext()){
    String key=(String)it.next();
    context.put(key,hm.get(key));
}


Template template2=new StringTemplate(wm.getBroker(),source);
template2.parse();
return template2.evaluateAsString(context);
}

【问题讨论】:

  • 我已将问题阅读了三遍,但我不知道您要做什么。 ;) 你能举一些例子吗?
  • $b 是 webmacro,它基于我不完全了解的 webframe 框架,但在我们的项目中可能会用到。
  • @BALA:Java 本身没有宏。请提供很多更多关于用于运行此代码的框架的上下文。
  • 在上面的代码方法getStringUsingMacro中,我们传递了源(字符串)和hashmap,它们具有基于将$b替换为某个值的值的值集我不太关心这个框架,这就是为什么我不是能够解释清楚。对不起所有
  • @BALA:你至少应该提到你在这里使用WebMacro框架

标签: java macros


【解决方案1】:

看来你要做的是

if(a > b) 
    sb.append("checked");

或者如果b 是动态计算的。

int a = 10;
Future<Integer> b =
if(a > b.get()) 
    sb.append("checked");

【讨论】:

  • Future 是定义稍后可用的值的一种方式。 (例如在另一个线程中)另一种方法是使用 Callable。
猜你喜欢
  • 2012-11-19
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多