org.nutz.castor
类 Castors

java.lang.Object
  继承者 org.nutz.castor.Castors

public class Castors
extends java.lang.Object

一个创建 Castor 的工厂类。它的使用方式是:

 Castors.me().cast(obj, fromType, toType);
 

作者:
zozoh(zozohtnt@gmail.com), Wendal(wendal1985@gmail.com)

方法摘要
 Castors addPaths(java.lang.Class<?>... paths)
          增加 Castor 的寻找路径。
 boolean canCast(java.lang.Class<?> fromType, java.lang.Class<?> toType)
          判断一个类型是否可以被转换成另外一个类型 判断的依据就是看是否可以直接被转型,以及能不能找到一个专有的转换器
<F,T> T
cast(java.lang.Object src, java.lang.Class<F> fromType, java.lang.Class<T> toType, java.lang.String... args)
          转换一个 POJO 从一个指定的类型到另外的类型
<T> T
castTo(java.lang.Object src, java.lang.Class<T> toType)
          转换一个 POJO 到另外的类型
 java.lang.String castToString(java.lang.Object src)
          将一个 POJO 转换成字符串
static Castors create()
           
<F,T> Castor<F,T>
find(java.lang.Class<F> from, java.lang.Class<T> to)
          获取一个转换器
static Castors me()
           
 Castors resetPaths()
          将 Castor 的寻找路径恢复成默认值。
 Castors setPaths(java.util.List<java.lang.Class<?>> paths)
          你的的 Castor 可能存在在不同包下,你可以把每个包下的随便一个 Castor 作为例子放到一个列表里。
 Castors setSetting(java.lang.Object obj)
          设置转换的配置 配置对象所有的共有方法都会被遍历。
 Castors setTypeExtractor(TypeExtractor te)
          设置自定义的对象类型提取器逻辑
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

me

public static Castors me()
返回:
单例

create

public static Castors create()
返回:
一个新的 Castors 实例

setSetting

public Castors setSetting(java.lang.Object obj)
设置转换的配置

配置对象所有的共有方法都会被遍历。只要这个方法有一个且只有一个参数,并且该参数 是一个 org.nutz.castor.Castor 接口的实现类。那么就会被认为是对该种 Castor 的一个 配置。

当初始化这个 Castor 之前,会用这个方法来设置一下你的 Castor (如果你的 Castor 需要配置的话)

参数:
obj - 配置对象。可以是任意的 Java 对象。

setPaths

public Castors setPaths(java.util.List<java.lang.Class<?>> paths)
你的的 Castor 可能存在在不同包下,你可以把每个包下的随便一个 Castor 作为例子放到一个列表里。 这样, Nutz.Castor 就能找到同一包下其他的 Castor 了。

你的 Castor 存放在 CLASSPAH 下或者 Jar 包里都是没有问题的

参数:
paths - Castor 例子列表

resetPaths

public Castors resetPaths()
将 Castor 的寻找路径恢复成默认值。


addPaths

public Castors addPaths(java.lang.Class<?>... paths)
增加 Castor 的寻找路径。

参数:
paths - 示例 Castor

setTypeExtractor

public Castors setTypeExtractor(TypeExtractor te)
设置自定义的对象类型提取器逻辑

参数:
te - 类型提取器

cast

public <F,T> T cast(java.lang.Object src,
                    java.lang.Class<F> fromType,
                    java.lang.Class<T> toType,
                    java.lang.String... args)
       throws FailToCastObjectException
转换一个 POJO 从一个指定的类型到另外的类型

参数:
src - 源对象
fromType - 源对象类型
toType - 目标类型
args - 转换时参数。有些 Castor 可能需要这个参数,比如 Array2Map
返回:
目标对象
抛出:
FailToCastObjectException - 如果没有找到转换器,或者转换失败

find

public <F,T> Castor<F,T> find(java.lang.Class<F> from,
                              java.lang.Class<T> to)
获取一个转换器

参数:
from - 源类型
to - 目标类型
返回:
转换器

castTo

public <T> T castTo(java.lang.Object src,
                    java.lang.Class<T> toType)
         throws FailToCastObjectException
转换一个 POJO 到另外的类型

参数:
src - 源对象
toType - 目标类型
返回:
目标对象
抛出:
FailToCastObjectException - 如果没有找到转换器,或者转换失败

canCast

public boolean canCast(java.lang.Class<?> fromType,
                       java.lang.Class<?> toType)
判断一个类型是否可以被转换成另外一个类型

判断的依据就是看是否可以直接被转型,以及能不能找到一个专有的转换器

参数:
fromType - 起始类型
toType - 目标类型
返回:
是否可以转换

castToString

public java.lang.String castToString(java.lang.Object src)
将一个 POJO 转换成字符串

参数:
src - 源对象
返回:
字符串