`
T240178168
  • 浏览: 361697 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

toString() ,String,String.valueOf

    博客分类:
  • java
阅读更多
常用的方法有Object#toString(),(String)要转换的对象,String.valueOf(Object)等。

下面对这些方法一一进行分析。

方法1:采用 Object#toString()方法

请看下面的例子:

Object object = getObject();
System.out.println(object.toString());

在这种使用方法中,因为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(Object)源码如下:

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(null));
System.out.println(null);
我们看到的输出将是一模一样的东西:null,但它们意义不相同

0
0
分享到:
评论

相关推荐

    浅谈String.valueOf()方法的使用

    关于类型转换,对象常见的两个方法是toString()和valueOf()。实际上,这两个方法也可以应用在包装类型上。前面已经介绍过toString()方法,本文将介绍valueOf()方法,该方法返回原值 【1】undefined和null没有valueOf...

    sniffer基于jpcap的嗅探技术

    shujvbao1.put("最大网段数量", String.valueOf(ippacket.hop_limit)); shujvbao1.put("数据包头长度", String.valueOf(ippacket.header.length)); shujvbao1.put("数据包是否有分片

    Android实验4

    public int compare_130(int a,int ... String msg = String.valueOf(a) + " compare with " + String.valueOf(b) + ",the " + String.valueOf(result)+" is bigger"; labelView.setText(msg); } });

    Android实验动态生成数

    动态生成数的运用 ... String msg = String.valueOf(a) + " compare with " + String.valueOf(b) + ",the " + String.valueOf(result)+" is bigger"; labelView.setText(msg); } });

    StringAPI.java

    int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引 int lastIndexOf...

    Java中区别.toString() ,(String),valueOf()方法

    主要介绍了Java中区别.toString() ,(String),valueOf()方法,需要的朋友可以参考下

    fastjson-1.2.7.jar通用json文本解析实例(轻开IOS和安卓App服务器开发)

    b0.set(key,new StringBuffer(prefix1).append(".").append(String.valueOf(i)).append(".").append(String.valueOf(j)).toString()); } else{//如果下级是如果是文本或值,就放进书包 ...

    闹钟计时器(简易的闹钟提示)

    string strMouit = DateTime.Now.TimeOfDay.Minutes.ToString(); string strSecon = DateTime.Now.TimeOfDay.Seconds.ToString(); if (Convert.ToInt32(strHour) ) { strHour = "0" + strHour; } if (Convert...

    JavaScript权威指南

    By Value Versus by Reference Section 11.3. Garbage Collection Section 11.4. Lexical Scoping and Nested Functions Section 11.5. The Function( ) Constructor and Function Literals Section 11.6. ...

    java 类型转换 大全

    如何将整数 int 转换成字串 String ? A. 有叁种方法: 1.) String s = String.valueOf(i); 2.) String s = Integer.toString(i); 3.) String s = "" + i;

    蓝桥杯JAVA 特殊回文数

    String a=String.valueOf(i); StringBuilder sb=new StringBuilder(a); String b=sb.reverse().toString(); if(a.equals(b)){ for(int j=0;j<a.length();j++){ sum+=(int)a.charAt(j)-48; ...

    Myeclipse破译

    public class MyEclipseKeyGen { private static final String LL = "Decompiling this ... String code = new StringBuilder(need).append(String.valueOf(suf)) .toString(); return this.change(code); }

    JavaScript中的object转换函数toString()与valueOf()介绍

    JavaScript中,object转换为boolean的操作非常简单:所有的...在将object转换为string或者number时,JavaScript会调用object的两个转换函数:toString()与valueOf()。 toString() toString()函数的作用是返回object的字

    Javascript valueOf 使用方法

    object.valueOf( ) 必选项 object 参数是任意固有 JScript 对象。 说明 每个 JScript 固有对象的 valueOf 方法定义不同。 对象 返回值 Array 数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其...

    Android计算器实验框架.doc

    } if(temp.equals("-")) { tempres = Double.valueOf(num1 - num2); } String result = tempres.toString(); if(temp.equals("*")) { tempres = Double.valueOf(num1 * num2); } editText1.setText(result); if...

    CMS.DBUtility.dll

    public static bool ColumnExists(string tableName, string columnName) { string sql = "select count(1) from syscolumns where [id]=object_id('" + tableName + "') and [name]='" + columnName + "'"; ...

    javascript中tostring()和valueof()的用法及两者的区别

    基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题。 1.用法如下: toString()方法:返回对象的字符串表示。 对象 操作 Array 将 Array 的元素...

    java代码获取myeclipse注册码.txt

    String code = new StringBuilder(need).append(String.valueOf(suf)).toString(); return this.change(code); } private int decode(String s) { int i; char[] ac; int j; int k; i = 0; ac ...

    C#读取JPEG图片的Exif信息

    returnValue = ParsedDate(Definitions.exifCode.DateTimeDigitized).ToString(); break; case Definitions.exifCode.ComponentsConfiguration: returnValue = ComponentsConfiguration(); break; case ...

    Excel POI读取封装(文件+示范代码)

    String.valueOf(d.longValue())); continue; } dataMap.put(headMap.get(j).toString(), cell.toString()); } } } } dataList.add(dataMap); } } return dataList; } // 将从Excel表格读取到的数据...

Global site tag (gtag.js) - Google Analytics