`
hcc20010713
  • 浏览: 41453 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

java.toString() , (String), valueOf

阅读更多

在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。常用的方法有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,但它们意义相同吗?

分享到:
评论

相关推荐

    java.lang.NumberFormatException For inputstring 4294967295处理方法

    在Java中,`Integer.parseInt()` 和 `Integer.valueOf()` 方法默认将字符串转换为32位有符号整数。这意味着它们能够处理的范围是 `-2^31` 到 `2^31 - 1`,即 `-2147483648` 到 `2147483647`。因此,当试图将 `'...

    java中String类型转换方法.pdf

    * 使用 `Integer.valueOf()` 方法:`String str = "25"; int i = Integer.valueOf(str).intValue();` 字符串到浮点型 将字符串转换为浮点型可以使用以下方法: * 使用 `Double.parseDouble()` 方法:`String str ...

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

    在Java编程语言中,将对象转换为字符串是一个常见的操作,主要涉及到`toString()`、`(String)`类型转换以及`String.valueOf()`这三个方法。了解它们的区别和使用场景对于编写高质量的Java代码至关重要。 首先,`...

    java中string和int型的相互转换.doc

    Java 中的 String 和 int 类型的相互转换是一个基本的数据类型转换操作,我们可以使用多种方法来实现这种转换,例如使用 `Integer.parseInt()` 方法、`Integer.valueOf()` 方法、`String.valueOf()` 方法等。...

    Java字符串转换为日期和时间比较大小[归类].pdf

    if (java.sql.Time.valueOf(timeBegin.toString()).after(java.sql.Time.valueOf(timeEnd.toString()))) { // 起始时间大于结束时间 errors.rejectValue("timeEnd", null, "起始日期相同,起始时间必须小于结束...

    java中int_char_string三种类型的相互转换

    String s = String.valueOf(i); 2. 使用 Integer.toString() 方法 String s = Integer.toString(i); 3. 使用字符串连接符 String s = "" + i; 四、将 int 转换成 Integer 将 int 转换成 Integer 可以使用以下...

    java.lang包

    在示例中,我们看到`Byte.valueOf()`、`Short.valueOf()`、`Integer.valueOf()`和`Long.valueOf()`这些方法分别用于将字符串转换为对应的包装类对象。 `String`类是`java.lang`包中的另一个重要组成部分,用于处理...

    java对象转换String类型的三种方法共1页.pdf

    对于对象,如果对象非null,`String.valueOf()`实际上就是调用了`toString()`方法。如果对象是null,`String.valueOf()`会返回"null"字符串。 3. **StringBuilder / StringBuffer 和格式化输出** 当你需要将多个...

    将长整型转换为字符串的Java程序.docx

    String str = String.valueOf(varLong); ``` C. 使用 `Long.toString()` 方法: 这是直接针对 Long 类型的方法,它会返回 Long 值的字符串表示。例如: ```java String str = varLong.toString(); ``` 这种方法是...

    java类型转换IntegerStringLongFloatDoubleDate.doc

    - 使用 `java.sql.Date.valueOf(String)` 方法可以将符合特定格式(如 'yyyy-MM-dd')的字符串转换为 `java.sql.Date` 对象。 6. **日期(Date)到字符串(String)的转换**: - `java.sql.Date.toString()` 方法...

    JAVA数据类型转换

    例如,`stringToInt`方法使用`Integer.valueOf()`将字符串转换为`Integer`对象,然后通过`intValue()`得到`int`值。其他方法如`stringToFloat`和`floatToString`遵循相同的概念。 总的来说,理解并正确使用Java中的...

    spring boot 枚举使用的坑整理

    在 Java 中,枚举类型可以使用 enum 关键字来定义。 在 Spring Boot 应用程序中,枚举类型经常被用于定义一些固定的值,例如订单状态、用户角色等。然而,在使用枚举类型时,需要注意一些坑,否则可能会出现一些...

    改进java.util.Properties类,让输出格式与输入格式保持不变.

    String keyValue = key.toString() + "=" + getProperty(key.toString()); writer.write(keyValue); writer.newLine(); // 保留原有的行结束符,而不是默认的\r\n } } finally { writer.close(); } } } ``` ...

    JAVA数据转换类型

    1. 使用 `String.valueOf()` 方法:`String s = String.valueOf(123);` 2. 使用 `Integer.toString()` 方法:`String s = Integer.toString(123);` 3. 使用字符串拼接:`String s = "" + 123;` 这三种方法都可以将...

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

    `String.valueOf()`方法在Java中是一个非常实用的工具,它用于将各种数据类型转换为String类型。这个方法在处理不同类型的数据时有不同的行为,下面我们详细探讨一下。 1. **空值和未定义**: `undefined`和`null`...

    java 源码 (数字转换2)

    当我们需要将整数显示为人类可读的字符串时,可以使用`Integer.toString()`或`String.valueOf()`方法。例如,将一个int类型的数字转换成字符串: ```java int num = 123; String strNum = Integer.toString(num)...

    java 类型转换 大全

    String s = String.valueOf(i); ``` 这种方法简洁明了,易于理解和使用。 2. **使用 `Integer.toString()` 方法** ```java int i = 123; String s = Integer.toString(i); ``` 该方法同样可以实现转换功能...

    Java 之 String 类型

    - `String.valueOf(int i)`/`String.valueOf(double d)`:将整型/浮点型数值转换为字符串。 8. **字符串与对象的转换** - `toString()`:所有对象都有这个方法,用于将对象转换为字符串表示。 - `Object....

    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 if(ob1 instanceof JSONObject)//如果下级是json...

Global site tag (gtag.js) - Google Analytics