欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

Transmorph 2.0.0发布,一个对象转换框架

程序员文章站 2022-04-18 13:37:22
...

Transmorph 是一个新的免费Java库(Apache 2 License),用于将Java对象从一种类型转换到另一种类型。

Transmorph的优势:

  • 支持转换为原始和对象
  • 支持转换为多维数组
  • 支持转换为参数的集合和类型
  • JDK 1.4和JDK 1.5 的jars
  • 没有依赖
  • 轻松地添加更多的转换器
  • 在使用modifiers之后,对象仍然可以被修改
  • 可以轻松的转换为特定的类型
  • 易于使用

 

Transmorph converter = new Transmorph(ConverterTest.class
                .getClassLoader(), new DefaultConverters());
        
// int[][] => String[][]
int[][] arrayOfArrayOfInts = new int[][] { { 11, 12, 13 },  { 21, 22, 23 }, { 31 } };
String[][] arrayOfArrayOfStrings = (String[][]) converter.convert(
                arrayOfArrayOfInts, (new String[0][0]).getClass()); 

// Map[String, String[]] => Map<String,List><String>>
Map map = new HashMap();
map.put("key1", new String[] { "value1-1", "value1-2" });
map.put("key2", new String[] { "value2-1", "value2-2" });
map.put("key3", null);
map.put("key4", new String[] { null, null });
map.put(null, new String[] { "value5-1", "value5-2" });
Map<String, List><String>> converted = (Map<String, List><String>>) converter
                .convert(map,
                        "Ljava.util.Map<Ljava.lang.String;Ljava.util.List><Ljava.lang.String;>;>;");

// int[] => Set<Integer> (ArrayToSetConverter)
int[] arrayOfInts = new int[] { 0, 1, 2, 3, 4, 5 };
Set<Integer> setOfInts = (Set<Integer>) converter.convert(arrayOfInts,
				Set.class, new Class[] { Integer.class });



查看更多示例:http://transmorph.sourceforge.net

2.0.0版的新功能:

  • 支持dotted样式(Ljava.util.Map<Ljava.lang.String;Ljava.util.List><Ljava.lang.String;>;>;)
  • 新的转换情况:包含了一批创建对象,用于支持数据对象的双定向关系;
  • 包含用于调试的转换器
  • 新转换器(BeanToBean, EnumToEnum, ImmutableIdentityConverter, StringToQName, StringToTimeZone)
  • 添加了modifier的概念,用于转换后:CanonicalizeFile, LowerCaseString, ResolveFile, TrimString, UppercaseString
  • 许多转换器的改进

 

 

相关标签: 框架