title: String.format with lazy evaluation
body: <p>I need something similar to <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#format(java.lang.String,%20java.lang.Object...)" rel="noreferrer">String.format(...)</a> method, but with lazy evaluation. </p>
  
  <p>This lazyFormat method should return some object whose toString() method would then evaluate the format pattern.</p>
  
  <p>I suspect that somebody has already done this. Is this available in any libararies?</p>
  
  <p>I want to replace this (logger is log4j instance):</p>
  
  <pre><code>if(logger.isDebugEnabled() ) {
     logger.debug(String.format("some texts %s with patterns %s", object1, object2));
  }
  </code></pre>
  
  <p>with this:</p>
  
  <pre><code>logger.debug(lazyFormat("some texts %s with patterns %s", object1, object2));
  </code></pre>
  
  <p>I need lazyFormat to format string only if debug logging is enabled.</p>