java数组tostring_java中转化为String数组问题?
2017-07-26
将java对象转为javaStr
⽅法1:采⽤ Object#toString()⽅法  请看下⾯的例⼦:  Object object = getObject();  System。out。println(object。toString());   注1  在这种使⽤⽅法中,因为java。 lang。Object类⾥已有public⽅法。toString(),所以对任何严格意义上的java 对象都可以调⽤此⽅法。但在使⽤时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。 采⽤这种⽅法时,通常派⽣类会覆盖Object⾥的toString()⽅法。  ⽅法2:采⽤类型转...全部
⽅法1:采⽤ Object#toString()⽅法  请看下⾯的例⼦:  Object object = getObject();  System。out。println(object。toString());   注1  在这种使⽤⽅法中,因为java。
lang。Object类⾥已有public⽅法。toString(),所以对任何严格意义上的java对象都可以调⽤此⽅法。但
在使⽤时要注意,必须保证object不是null值,否则将抛出NullPointerException异常。
采⽤这种⽅法时,通常派⽣类会覆盖Object⾥的toString()⽅法。  ⽅法2:采⽤类型转换(String)object⽅法  这是标准的类型转换,将object转成String类型的值。
使⽤这种⽅法时,需要注意的是类型必须能转成String类型。因此最好⽤instanceof做个类型检查,以判断是否可以转换。否则容易抛出CalssCastException异常。此外,需特别⼩⼼的是因定义为Object 类型的对象在转成String时语法检查并不会报错,这将可能导致潜在的错误存在。
这时要格外⼩⼼。如:  Object obj = new Integer(100);  String strVal = (String)obj;  在运⾏时将会出错,因为将Integer类型强制转换为String类型,⽆法通过。
但是,  Integer obj = new Integer(100);  String strVal = (String)obj;  如是格式代码,将会报语法错误。  此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。
⽅法3:采⽤String。valueOf(Object)  String。valueOf(Object)的基础是Object#toString()。但它与Object#toString()⼜有所不同。
在前⾯⽅法1的分析中提到,使⽤后者时需保证不为null。但采⽤第三种⽅法时,将不⽤担⼼object是否为null值这⼀问题。为了便于说明问题,我们来分析⼀下相关的源代码。Jdk⾥String# valueOf(Obje
java valueofct)源码如下:  /**  * Returns the string representation of the Object argument。
*  * @param obj an Object。  * @return if the argument is null, then a string equal to  * "null"; otherwise, the value of  * obj。
toString() is returned。  * @see java。lang。Object#toString()  */  public static String valueOf(Object obj) {  return (obj == null) ? "null" : obj。
toString();  }  从上⾯的源码可以很清晰的看出null值不⽤担⼼的理由。但是,这也恰恰给了我们隐患。我们应当注意到,当object为null时,String。valueOf(object)的值是字符串”null”,⽽不是null在使⽤过程中切记要注意。
试想⼀下,如果我们⽤ if(String。valueOf(object)==null){System。out。println(“传⼊的值是null!”);}这样的语句将可能会发⽣什么问题。再想⼀下,向控制台输出时,在视觉上如下语句在执⾏的结果上有什么不同:  System。
out。println(String。valueOf((Object)null));   注2  System。out。println((Object)null);   注2  我们看到的输出将是⼀模⼀样的东西:null,但它们意义相同吗?  注1:光就System。
out。println的使⽤来说,语句System。out。println(object。toString()); 换为System。out。println(ob
ject); 更好。此处如是⽤法主要是为了说明Object#toString()的⽤法。
注2:推荐使⽤System。out。println(String。valueOf((Object)null)); 不推荐使⽤System。out。println(String。valueOf(null));在使⽤重载⽅法时,这样做是⼀个好的习惯。
以上是对object对象转换为String的⼀些总结。
完成 丢弃。收起

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。