All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.loocme.sys.util.ClassUtil Maven / Gradle / Ivy

There is a newer version: 7.1.11
Show newest version
package com.loocme.sys.util;

import lombok.extern.slf4j.Slf4j;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * class类使用帮助类
 *
 * @author loocme
 */
@Slf4j
public class ClassUtil
{

    /**
     * 通过对象获取对象的class
     *
     * @param obj 对象
     * @return 对象的class
     */
    public static Class getType(Object obj)
    {
        return obj.getClass();
    }

    /**
     * 检验对象是否为名为clzName的class实例
     *
     * @param clzName 类名
     * @param obj     对象
     * @return 检验结果
     */
    public static boolean checkType(String clzName, Object obj)
    {
        if (obj == null)
        {
            return true;
        }

        Class clz = ReflectUtil.getClass(clzName);
        return obj.getClass().isAssignableFrom(clz);
    }

    public static boolean checkType(String clzName, Class iclz)
    {
        if (iclz == null)
        {
            return false;
        }

        Class clz = ReflectUtil.getClass(clzName);
        return iclz.isAssignableFrom(clz);
    }

    /**
     * 将string类型的值转换成className类型的值
     *
     * @param className 需要获取类型名称
     * @param value     参数值
     * @return 转换后的值
     * 

* i.e. getValue("java.lang.Integer", "12")=12;//(Integer) */ public static Object getValue(String className, String value) { Class clz = ReflectUtil.getClass(className); if (StringUtil.isNull(value)) { return null; } if (clz.equals(String.class)) { return value; } else if (clz.equals(Integer.class)) { return StringUtil.getInteger(value); } else if (clz.equals(Long.class)) { return StringUtil.getLong(value); } else if (clz.equals(Double.class)) { return StringUtil.getDouble(value); } else if (clz.equals(Date.class)) { return DateUtil.getDate(value); } else if (clz.equals(BigDecimal.class)) { return new BigDecimal(value); } else { log.error("未定义转换的class类型({})", className); return null; } } /** * 判断对象是否为string类型数据 * * @param obj 对象 * @return 校验结果 */ public static boolean isString(Object obj) { return obj instanceof String; } /** * 判断对象是否为double类型数据 * * @param obj 对象 * @return 校验结果 */ public static boolean isDouble(Object obj) { return obj instanceof Double; } /** * 判断对象是否为float类型数据 * * @param obj 对象 * @return 校验结果 */ public static boolean isFloat(Object obj) { return obj instanceof Float; } /** * 判断对象是否为int类型数据 * * @param obj 对象 * @return 校验结果 */ public static boolean isInteger(Object obj) { return obj instanceof Integer; } /** * 判断对象是否为date类型数据 * * @param obj 对象 * @return 校验结果 */ public static boolean isDate(Object obj) { return obj instanceof Date; } /** * 判断对象是否为array类型数据 * * @param obj 对象 * @return 校验结果 */ public static boolean isArray(Object obj) { return obj.getClass().isArray(); } /** * 判断对象是否为list类型数据 * * @param obj 对象 * @return 校验结果 */ public static boolean isList(Object obj) { return obj instanceof List; } /** * 判断对象是否为map类型数据 * * @param obj 对象 * @return 校验结果 */ public static boolean isMap(Object obj) { return obj instanceof Map; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy