在java项目的实际开发和应用中,经常需要将对象转换成字符串的基本功能。本文详细介绍了几种方法,有兴趣的可以看看。
目录
方法1:使用Object#toString()方法
方法二:采用类型转换(String)对象方法。
方法:使用了String.valueOf(Object)方法。
方法四:采用“对象法”。
在java项目的实际开发和应用中,经常需要将对象转换成字符串的基本功能。本文将总结常见的转换方法。常用的方法有Object#toString()、(String)要转换的对象、String.valueOf(Object)等。
方法一:采用Object#toString()方法。
请看下面的例子:
object object=getObject();
system . out . println(object . tostring());
在这个用法方法中,因为public方法。toString()已经存在于java.lang.Object类中,严格来说,可以为任何java对象调用该方法。但是,使用的时候要注意。您必须确保对象不为空,否则将引发NullPointerException异常。使用此方法时,派生类通常重写Object中的toString()方法。
方法二:采用类型转换(String)对象方法。
这是标准的类型转换,将对象转换为字符串值。使用此方法时,应注意该类型必须能够转换为字符串类型。所以最好用instanceof做类型检查,确定是否可以转换。否则很容易抛出CalssCastException异常。此外,当定义为对象类型的对象转换为字符串时,应特别注意语法检查不会报告错误,这可能会导致潜在的错误。这个时候要格外小心。比如:
Object obj=新整数(100);
String strVal=(String)obj;
运行时将会出错,因为整数类型不能转换为字符串类型。但是,
Integer obj=新整数(100);
String strVal=(String)obj;
如果是格式代码,将会报告语法错误。
另外,因为空值可以被强制转换成任何java类类型,而且(String)null是合法的,所以不会有空指针问题。
方法:使用了String.valueOf(Object)方法。
String.valueOf(Object)的基础是Object#toString()。但它不同于Object#toString()。正如前面对方法1的分析中提到的,应该使用后者来确保它不为空。但是,当采用第三种方法时,就不需要担心对象是否为空。为了说明问题,我们来分析一下相关的源代码。Jdk中字符串# valueOf(Object)的源代码如下:
(对象对象)的公共静态字符串值{
return (obj==null)?' null ':obj . tostring();
}
从上面的源代码中,你可以清楚地看到你不用担心空值的原因。然而,这也恰恰给了我们隐患。我们要注意,当对象为null时,String.valueOf(object)的值是字符串“null”,而不是null!使用过程中记得注意。试想一下,如果我们用if(string . value of(object)==null){ system . out . println("传入的值为null!");}这样的说法可能会出现什么问题。再考虑一下。当您输出到控制台时,以下语句的执行结果有何视觉差异:
system . out . println(string . value of(null));
system . out . println(null);
我们看到的输出将是完全相同的东西:null,但它们有不同的含义。
方法四:采用“对象法”。
这个方法也不用担心空对象。但如果对象为null,则返回一个' null '字符串,与String.valueOf(object)相同。
system . out . println(' null ');
system . out . println(null ' ');
system . out . println('(' null '和' null '的比较结果是:'(' null ')。equals(null));
system . out . println('(' null ')和' null '的比较结果是:'(null ')。equals(null));
system . out . println('(' null ')和' null '之间的比较结果是:' null '。equals(' null ');
system . out . println('(' null ')和' null '的比较结果为' null '。equals(null ' '));
输出结果:
空
空
(' null ')和' null '之间的比较结果是:false。
(' null ')和' null '之间的比较结果是:false。
(' null ')和' null '之间的比较结果是:true
(' null ')和' null '之间的比较结果是:true
本文总结了将java对象转换成字符串类型的四种方法。要获得更多与java对象相关的字符串内容,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。