String、int类型转换

报错的信息如下:

Optional int parameter 'clusterId' is present but cannot be translated into a null value due to being declared as a primitive type。String、int类型转换

解决方式:利用Integer.parseInt()方法,把int类型的clusterId转成String类型。

String、int类型转换

在做项目时遇到了数据类型的转换,自己当时也略知一二,但是解决问题后的总结很有必要,所以就找了资料,总结一下。

int -> String

int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

String -> int

s="12345";
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

以下是答案:

第一种方法:s=i+"";   //会产生两个String对象
第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象

第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象

 

 

参考博客链接:https://www.cnblogs.com/bluestorm/p/3698810.html