在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中,`Integer.parseInt()` 和 `Integer.valueOf()` 方法默认将字符串转换为32位有符号整数。这意味着它们能够处理的范围是 `-2^31` 到 `2^31 - 1`,即 `-2147483648` 到 `2147483647`。因此,当试图将 `'...
* 使用 `Integer.valueOf()` 方法:`String str = "25"; int i = Integer.valueOf(str).intValue();` 字符串到浮点型 将字符串转换为浮点型可以使用以下方法: * 使用 `Double.parseDouble()` 方法:`String str ...
在Java编程语言中,将对象转换为字符串是一个常见的操作,主要涉及到`toString()`、`(String)`类型转换以及`String.valueOf()`这三个方法。了解它们的区别和使用场景对于编写高质量的Java代码至关重要。 首先,`...
Java 中的 String 和 int 类型的相互转换是一个基本的数据类型转换操作,我们可以使用多种方法来实现这种转换,例如使用 `Integer.parseInt()` 方法、`Integer.valueOf()` 方法、`String.valueOf()` 方法等。...
if (java.sql.Time.valueOf(timeBegin.toString()).after(java.sql.Time.valueOf(timeEnd.toString()))) { // 起始时间大于结束时间 errors.rejectValue("timeEnd", null, "起始日期相同,起始时间必须小于结束...
String s = String.valueOf(i); 2. 使用 Integer.toString() 方法 String s = Integer.toString(i); 3. 使用字符串连接符 String s = "" + i; 四、将 int 转换成 Integer 将 int 转换成 Integer 可以使用以下...
在示例中,我们看到`Byte.valueOf()`、`Short.valueOf()`、`Integer.valueOf()`和`Long.valueOf()`这些方法分别用于将字符串转换为对应的包装类对象。 `String`类是`java.lang`包中的另一个重要组成部分,用于处理...
对于对象,如果对象非null,`String.valueOf()`实际上就是调用了`toString()`方法。如果对象是null,`String.valueOf()`会返回"null"字符串。 3. **StringBuilder / StringBuffer 和格式化输出** 当你需要将多个...
String str = String.valueOf(varLong); ``` C. 使用 `Long.toString()` 方法: 这是直接针对 Long 类型的方法,它会返回 Long 值的字符串表示。例如: ```java String str = varLong.toString(); ``` 这种方法是...
- 使用 `java.sql.Date.valueOf(String)` 方法可以将符合特定格式(如 'yyyy-MM-dd')的字符串转换为 `java.sql.Date` 对象。 6. **日期(Date)到字符串(String)的转换**: - `java.sql.Date.toString()` 方法...
例如,`stringToInt`方法使用`Integer.valueOf()`将字符串转换为`Integer`对象,然后通过`intValue()`得到`int`值。其他方法如`stringToFloat`和`floatToString`遵循相同的概念。 总的来说,理解并正确使用Java中的...
在 Java 中,枚举类型可以使用 enum 关键字来定义。 在 Spring Boot 应用程序中,枚举类型经常被用于定义一些固定的值,例如订单状态、用户角色等。然而,在使用枚举类型时,需要注意一些坑,否则可能会出现一些...
String keyValue = key.toString() + "=" + getProperty(key.toString()); writer.write(keyValue); writer.newLine(); // 保留原有的行结束符,而不是默认的\r\n } } finally { writer.close(); } } } ``` ...
1. 使用 `String.valueOf()` 方法:`String s = String.valueOf(123);` 2. 使用 `Integer.toString()` 方法:`String s = Integer.toString(123);` 3. 使用字符串拼接:`String s = "" + 123;` 这三种方法都可以将...
`String.valueOf()`方法在Java中是一个非常实用的工具,它用于将各种数据类型转换为String类型。这个方法在处理不同类型的数据时有不同的行为,下面我们详细探讨一下。 1. **空值和未定义**: `undefined`和`null`...
当我们需要将整数显示为人类可读的字符串时,可以使用`Integer.toString()`或`String.valueOf()`方法。例如,将一个int类型的数字转换成字符串: ```java int num = 123; String strNum = Integer.toString(num)...
String s = String.valueOf(i); ``` 这种方法简洁明了,易于理解和使用。 2. **使用 `Integer.toString()` 方法** ```java int i = 123; String s = Integer.toString(i); ``` 该方法同样可以实现转换功能...
- `String.valueOf(int i)`/`String.valueOf(double d)`:将整型/浮点型数值转换为字符串。 8. **字符串与对象的转换** - `toString()`:所有对象都有这个方法,用于将对象转换为字符串表示。 - `Object....
b0.set(key,new StringBuffer(prefix1).append(".").append(String.valueOf(i)).append(".").append(String.valueOf(j)).toString()); } else if(ob1 instanceof JSONObject)//如果下级是json...