问答详情
源自:3-4 Java 中基本类型和字符串之间的转换

本节的两个问题 大佬们帮帮忙!真的不太懂

首先,想问一下这段代码:

int c=10;

String str1=Integer.toString(c);

不应该在执行第二行前先把int转换为Integer吗?还是这里自动装箱了?


第二个问题,想问一下这三行代码:

String str="8";

int d=Integer.parseInt(str);

int e=Integer.valueOf(str);

一般都是 对象名.方法名(参数) ,方法针对的是对象,Integer.parseInt这个意思不就变成了把Integer里的String转换成int吗?这有点矛盾吧?所以这个方法为什么不应该是str.parseInt()吗?为什么要把str放在括号里呢?像这种系统自带的方法,括号里到底是参数还是什么?

还有为什么这里是 包装类名.方法名()?不应该是 包装类的对象名.方法名() 吗?

parseXXX这个方法为什么转换的结果一定是static的呢?


大佬们求帮忙!真的不太懂有点迷

提问者:奶尤糯米团子 2020-02-24 18:02

个回答

  • 那一丝夏日凉风
    2020-05-20 20:41:24

    可以去看下源码,你会发现包装类的toString(),valueOf(),parseInt()等方法全是静态的。所以无需new对象,直接类名就可以调用。

  • 星辰皆入梦
    2020-02-25 00:01:48

    因为都是包装类Integer的静态方法,不需要创建对象调用,直接就是:类名.方法名( )调用的