博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LazyMap.decorate()和ChainedTransformer的用处
阅读量:6095 次
发布时间:2019-06-20

本文共 2168 字,大约阅读时间需要 7 分钟。

hot3.png

import java.util.*;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.map.LazyMap;import org.apache.commons.lang.StringUtils;public class LazyMapTest {public static void main(String[]args){// Create a Transformer to reverse strings - defined belowfinal Transformer reverseString = new Transformer( ) {    public Object transform( Object object ) {//定义转换的方法          String name = (String) object;                String reverse = StringUtils.reverse( name );                return reverse;    }};// Create a LazyMap called lazyNames, which uses the above TransformerMap names = new HashMap( );Map lazyNames = LazyMap.decorate(names, reverseString );//将Map和transformer传递给lazymap// Get and print two namesString name = (String) lazyNames.get("Thomas");//调用LazyMap里面的get()方法如果,没有这个key会调用transform方法获得value,返回getSystem.out.println("name:"+name);}}###使用transformer chainimport java.util.*;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.map.LazyMap;import org.apache.commons.lang.StringUtils;public class LazyMapTest {public static void main(String[]args){		// Create a Transformer to reverse strings - defined below	final Transformer reverseString = new Transformer( ) {			    public Object transform( Object object ) {	    		            	        Long number = (Long) object;	        	         return( new Long( number.longValue() * 100 ) );	    }	};		Transformer increment = new Transformer( ) {	    public Object transform(Object input) {	                Long number = (Long) input;	         return( new Long( number.longValue( ) + 1 ) );	        }	};		Transformer[] chainElements = new Transformer[] { reverseString , increment };//一个transformer 结果作为另外一个transform的输入值		Transformer chain = new ChainedTransformer( chainElements );	Long original = new Long( 34 );		Long result = (Long) chain.transform(original);	System.out.println( "Original: " + original );		System.out.println( "Result: " + result );	// Create a LazyMap called lazyNames, which uses the above Transformer			}	}

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

你可能感兴趣的文章
Google最新截屏案例详解
查看>>
2015第31周一
查看>>
2015第31周日
查看>>
在使用EF开发时候,遇到 using 语句中使用的类型必须可隐式转换为“System.IDisposable“ 这个问题。...
查看>>
PHP使用DES进行加密和解密
查看>>
Oracle 如何提交手册Cluster Table事务
查看>>
BeagleBone Black第八课板:建立Eclipse编程环境
查看>>
在服务器上用Fiddler抓取HTTPS流量
查看>>
文件类似的推理 -- 超级本征值(super feature)
查看>>
【XCode7+iOS9】http网路连接请求、MKPinAnnotationView自定义图片和BitCode相关错误--备用...
查看>>
各大公司容器云的技术栈对比
查看>>
记一次eclipse无法启动的排查过程
查看>>
【转】jmeter 进行java request测试
查看>>
读书笔记--MapReduce 适用场景 及 常见应用
查看>>
SignalR在Xamarin Android中的使用
查看>>
走过电竞之路的程序员
查看>>
Eclipse和MyEclipse使用技巧--Eclipse中使用Git-让版本管理更简单
查看>>
[转]响应式表格jQuery插件 – Responsive tables
查看>>
8个3D视觉效果的HTML5动画欣赏
查看>>
C#如何在DataGridViewCell中自定义脚本编辑器
查看>>