美文网首页
记遇见的数据类型转换问题

记遇见的数据类型转换问题

作者: SILENCE_SPEAKS | 来源:发表于2020-12-17 11:56 被阅读0次

1. 字符类型转换

String.valueOf(T)和T.toString()的区别: 当参数T为空的时候,String.valueOf(T)会返回一个“null”字符串,T.toString()会报空指针异常;
字符类型数值相加:new BigDecimal(str1).add(new BigDecimal(str2)).toString())

2. 将Object转换为List

public static <T> List<T> objToList(Object obj, Class<T> clazz)
{
    List<T> result = new ArrayList<T>();
    if(obj instanceof List<?>)
    {
        for (Object o : (List<?>) obj)
        {
            result.add(clazz.cast(o));
        }
        return result;
    }
    return null;
}

3. Mysql数据库中的date、time类型在dubbo反序列化传输时遇见的bug

推荐统一用 java.util.Date 进行接收
问题:用 java.sql 包下的日期格式进行dubbo传输时,如果此日期属性为空,则会报如下错误()

com.caucho.hessian.io.HessianServiceException: 具体哪个实体的属性:leaseEndDate: java.sql.Date cannot be assigned from null 或者 java.sql.Time cannot be assigned from null

解决方法:服务端操作数据库统一用 java.util.Date (是 java.sql.Date 和 java.sql.Time 的父类) 进行接收,如果接口端需要展示时间类型,可以使用 SimpleDateFormat 指定类型转换
参考链接

4. Object类型转换为指定类型

通过使用com.fasterxml.jackson.databind.ObjectMapper的ObjectMapper对象进行转换

<!-- 源码中的方法 -->
<!-- 
fromValue:需要转换的对象(可以为Object类型)
toValueType:指定转换的数据类型
-->
public <T> T convertValue(Object fromValue, Class<T> toValueType) throws IllegalArgumentException {
        return this._convert(fromValue, this._typeFactory.constructType(toValueType));
    }

<!-- 使用 -->
ObjectMapper objectMapper = new ObjectMapper();
A objA = objectMapper.convertValue(object, A.class);

5. Map转换为一个实体类对象

使用 fastjson

JSON.parseObject(JSON.toJSONString(Map<String, ? extends Object>), Class<T> cls);

使用org.apache.commons.beanutils.BeanUtils工具类

BeanUtils.populate(Object bean, Map<String, ? extends Object> properties)

相关文章

  • 记遇见的数据类型转换问题

    1. 字符类型转换 String.valueOf(T)和T.toString()的区别: 当参数T为空的时候,St...

  • JAVA基础第四天

    JAVA数据类型---布尔类型; 数据类型转换自动数据类型转换 强制数据类型转换

  • JavaScript基础03- 数据类型转换

    数据类型转换 所谓的数据类型转换,就是将一种数据类型转换为另一种数据类型,所以,数据类型转换包括,转换为字符串类型...

  • mybatis Timestamp读出时间相差13小时问题

    跟踪问题原因mybatis 做数据类型转换时ResultSetImpl 默认的timestampe转换类为SqlT...

  • Java基础班个人笔记

    Day02笔记 1数据类型转换(当数据类型不一样时) 自动类型转换: 1.特点:代码不需要特殊处理 2.规则:数据...

  • Python自学笔记——3.基础数据类型转换

    基础数据类型转换 数据类型转换的形式自动类型转换强制类型转换 可变数据类型: 列表, 字典, 集合不可变数...

  • JS里的数据类型转换

    在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换。 1, 显式数据类型转换 a:转数字: 1)Numb...

  • 3-数据类型转换

    数据类型转换 将数据有当前类型变化为其他类型的操作就是数据类型转换。 数据类型转换分类: 数据类型转换一共分为2类...

  • javascript-强制类型转换和运算符

    强制类型转换 将其它数据类型转换为String 将其它数据类型转换为Number 将其它数据类型转换为Boolea...

  • Java基础语法_数据类型转换

    数据类型转换 当数据类型不一样时,将会发生数据类型转换。 数据类型转换——自动转换(隐式) 特点:代码不需要进行特...

网友评论

      本文标题:记遇见的数据类型转换问题

      本文链接:https://www.haomeiwen.com/subject/tgaosktx.html