您的位置:首页 > 移动开发 > Objective-C

(四)Java工具类ObjectUtils详解

2018-01-21 18:07 239 查看
ObjectUtils工具类会尝试优雅的处理null输入,对于空输入通常不会抛出异常,每个方法都更详细的记录其行为。

在标准的应用程序中ObjectUtils类不应该被实例化。

类方法详解

/**
* 如果一个类没有重写toString方法本身,将会通过Object类的toString方法获取对象的字符串对象,
*/
String s1 = ObjectUtils.identityToString(null);
String s2 = ObjectUtils.identityToString("");
String s3 = ObjectUtils.identityToString(Boolean.TRUE);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);


输出结果:

null
java.lang.String@73a80183
java.lang.Boolean@1afb7ac7


public static void identityToString(StringBuffer buffer, Object object)

/**
* 累加对象产生的toString
* 两个参数任意一个为null都会抛出空指针异常
* buffer-要追加的缓冲区
* object-要创建对象的toString
*/
StringBuffer buffer = new StringBuffer();
ObjectUtils.identityToString(buffer, "");
ObjectUtils.identityToString(buffer, Boolean.TRUE);
ObjectUtils.identityToString(buffer, 12);
System.out.println(buffer);这里写代码片


public static void identityToString(StringBuilder builder, Object object)

/**
* 累加对象产生的toString,如果一个对象没有实现自己的toString方法将使用Object对象的toString
* 两个参数任意一个为null都会抛出空指针异常
* builder-要追加的缓冲区
* object-要创建对象的toString
*/
StringBuffer builder = new StringBuffer();
ObjectUtils.identityToString(builder, "");
ObjectUtils.identityToString(builder, Boolean.FALSE);这里写代码片


/**
* 这个方法返回不变的值,这可以阻止编译器javac重新编译
* 这种方法任何关联这个字段的jar包不需要重新编译,即使字段的值在将来改变
*/
public final static int MAGIC_INT = ObjectUtils.CONST(12);
public final static long MAGIC_LONG = ObjectUtils.CONST(123L);
public final static float MAGIC_FLOAT = ObjectUtils.CONST(123.0f);
public final static double MAGIC_DOUBLE = ObjectUtils.CONST(1.0);
public final static String MAGIC_STR = ObjectUtils.CONST("asfd");
public final static char MAGIC_CHAR = ObjectUtils.CONST('a');
public final static byte MAGIC_BYTE = ObjectUtils.CONST((byte) 127);
public final static boolean MAGIC_FLAG = ObjectUtils.CONST(true);
//不能小于-128或者大于127
public final static byte MAGIC_BYTE1 = ObjectUtils.CONST_BYTE(127);
//不能小于 -32768并且大于32767
public final static short MAGIC_SHORT = ObjectUtils.CONST_SHORT(32767);
public final static short MAGIC_SHORT1 = ObjectUtils.CONST((short) 123);这里写代码片


public static int compare(T c1, T c2)

/**
* 该方法是对NULL安全的比较方法,null是被假定为一个小于非空的值
* c1-第一个被比较的值,可能为null
* c2-第二个被比较的值,可能为null
*/
int result = ObjectUtils.compare(12, null);这里写代码片


public static int compare(T c1,T c2,boolean nullGreater)

/**
* 该方法是对NULL安全的比较方法,null是被假定为一个小于非空的值
* c1-第一个被比较的值,可能为null
* c2-第二个被比较的值,可能为null
* nullGreater-如果为true,null被认为是一个大于非空的值或者false,null被认为是小于非空的值
*/
result = ObjectUtils.compare(null, 23, false);这里写代码片


@SafeVarargs

public static T median(Comparator comparator, T… items)

说明:找到中间值进行比较,如果总数有偶数,则返回中间值两个比较低的值;
comparator-用来比较的比较器
items-被比较的值
Throws
NullPointerException - 如果items或者comparator为null
IllegalArgumentException - 如果items为空或者包含null值


@SafeVarargs

public static T median(T… items)

说明:找到中间值进行比较,如果总数有偶数,则返回中间值两个比较低的值;
comparator-用来比较的比较器
items-被比较的值
Throws
NullPointerException - 如果items或者comparator为null
IllegalArgumentException - 如果items为空或者包含null值


@SafeVarargs

public static T max(T… values)

说明:可比性是null安全的比较;
values-可比值集,可能为null;
返回值:
如果任何对象是非null和不相等的,则是最大的一个对象;
如果所有的对象是相等非空的,则取第一个;
如果有任何的可比性是空,非空对象的大;
如果所有的比较都是空的,则返回null;


@SafeVarargs

public static T min(T… values)

说明:可比性是null安全的比较;
values-可比值集,可能为null;
返回值:
如果任何对象是非null和不相等的,则是最小的一个对象;
如果所有的对象是相等非空的,则取第一个;
如果有任何的可比性是空,非空对象的小;
如果所有的比较都是空的,则返回null;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: