当前位置:   article > 正文

LazyMap.decorate()和ChainedTransformer的用处

lazymap.decorate
  1. import java.util.*;
  2. import org.apache.commons.collections.Transformer;
  3. import org.apache.commons.collections.map.LazyMap;
  4. import org.apache.commons.lang.StringUtils;
  5. public class LazyMapTest {
  6. public static void main(String[]args){
  7. // Create a Transformer to reverse strings - defined below
  8. final Transformer reverseString = new Transformer( ) {
  9.     public Object transform( Object object ) {//定义转换的方法
  10.   
  11.         String name = (String) object;
  12.         
  13.         String reverse = StringUtils.reverse( name );
  14.         
  15.         return reverse;
  16.     }
  17. };
  18. // Create a LazyMap called lazyNames, which uses the above Transformer
  19. Map names = new HashMap( );
  20. Map lazyNames = LazyMap.decorate(names, reverseString );//将Map和transformer传递给lazymap
  21. // Get and print two names
  22. String name = (String) lazyNames.get("Thomas");//调用LazyMap里面的get()方法如果,没有这个key会调用transform方法获得value,返回get
  23. System.out.println("name:"+name);
  24. }
  25. }
  26. ###使用transformer chain
  27. import java.util.*;
  28. import org.apache.commons.collections.Transformer;
  29. import org.apache.commons.collections.functors.ChainedTransformer;
  30. import org.apache.commons.collections.map.LazyMap;
  31. import org.apache.commons.lang.StringUtils;
  32. public class LazyMapTest {
  33. public static void main(String[]args){
  34. // Create a Transformer to reverse strings - defined below
  35. final Transformer reverseString = new Transformer( ) {
  36.     public Object transform( Object object ) {
  37.     
  38.             
  39.         Long number = (Long) object;
  40.         
  41.          returnnew Long( number.longValue() * 100 ) );
  42.     }
  43. };
  44. Transformer increment = new Transformer( ) {
  45.     public Object transform(Object input) {
  46.                 Long number = (Long) input;
  47.          returnnew Long( number.longValue( ) + 1 ) );
  48.         }
  49. };
  50. Transformer[] chainElements = new Transformer[] { reverseString , increment };//一个transformer 结果作为另外一个transform的输入值
  51. Transformer chain = new ChainedTransformer( chainElements );
  52. Long original = new Long34 );
  53. Long result = (Long) chain.transform(original);
  54. System.out.println( "Original: " + original );
  55. System.out.println( "Result: " + result );
  56. // Create a LazyMap called lazyNames, which uses the above Transformer
  57. }
  58. }

转载于:https://my.oschina.net/u/2308739/blog/618976

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/694726
推荐阅读
  

闽ICP备14008679号