美文网首页
string 转换成 integer的方式及原理

string 转换成 integer的方式及原理

作者: 芒鞋胜马 | 来源:发表于2018-04-08 14:04 被阅读0次
        Integer a = 2;
    private void test() {
        String s1 = a.toString();  //方式一
        String s2 = Integer.toString(a);  //方式二
        String s3 = String.valueOf(a);  //方式三
    }
    

    方式一源码:
    public String toString() {
    return toString(value);
    }

    public static String toString(int i) {
    if (i == Integer.MIN_VALUE)
    return "-2147483648";
    int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
    char[] buf = new char[size];
    getChars(i, size, buf);
    return new String(buf, true);
    }

    可以看出 方式一最终调用的是方式二。

    通过toString()方法,可以把整数(包括0)转化为字符串,但是Integer如果是null的话,就会报空指针异常。

    方式三源码:

    public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
    }
    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

    可以看出 当 Integer 是null的时候,返回的String是 字符串 "null" 而不是 null

    如果想当 Integer 为 null 的时候也返回 null 重写一下 valueOf 方法就行了。

    public static String valueOf(Object obj) {
    return (obj == null) ? null : obj.toString();
    }

    相关文章

      网友评论

          本文标题:string 转换成 integer的方式及原理

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