java中Object类型转String类型

本文介绍了一个实用的Java方法,该方法能够将不同类型的对象转换为字符串格式,并针对数值类型进行了格式化处理,日期类型使用特定格式输出。
public String objToString(Object param) {
		String result = "";
		BigDecimal re = new BigDecimal(0);
		DecimalFormat df = new DecimalFormat("#.000");  
		if (param instanceof Integer) {
			int value = ((Integer) param).intValue();
			result = String.valueOf(value);
		} else if (param instanceof String) {
			result = (String) param;
		} else if (param instanceof Double) {
			double d = ((Double) param).doubleValue();
			result = String.valueOf(d);
		} else if (param instanceof Float) {
			float f = ((Float) param).floatValue();
			result = String.valueOf(f);
		} else if (param instanceof Long) {
			long l = ((Long) param).longValue();
			result = String.valueOf(l);
		} else if (param instanceof Boolean) {
			boolean b = ((Boolean) param).booleanValue();
			result = String.valueOf(b);
		} else if (param instanceof Date) {
			Date d = (Date) param;
			result = String.valueOf(new SimpleDateFormat("yyyy-MM-dd").format(d));
		} else if( param instanceof BigDecimal ) {  
			re = (BigDecimal) param;   
			result= df.format(re);
		} else if( param instanceof BigInteger ) {  
			re = new BigDecimal( (BigInteger) param );  
			result= df.format(re);
        } else if( param instanceof Number ) {  
        	re = new BigDecimal( ((Number)param).doubleValue() );  
        	result= df.format(re);
        } 
		return result;
	}

Java 中,将 `Object` 类型换为 `String` 类型有几种常用的方法。选择哪种方法取决于具体情况以及对结果的要求。下面是几种常见的方式: ### 1. 使用 `toString()` 方法 每个对象都继承了来自 `Object` 类的基本 `toString()` 方法,默认返回的是该对象所属类名加上其哈希码值。如果你希望得到更有意义的字符串表示,则应在相应的自定义类中覆盖此方法。 ```java Object obj = new Object(); String result = obj.toString(); ``` 对于许多内置类型(如 `Integer`, `Double` 等),它们已经实现了合适的 `toString()` 实现;而对于用户创建的对象来说,则需自行保证该方法能够正确反映所需的信息内容。 ### 2. 直接拼接 利用字符串连接特性自动触发 `toString()` 的调用,这种方式简单直观但效率较低,因为每次都会生成新的字符串实例并涉及额外分配内存开销。 ```java Object obj = ...; String s = "" + obj; // 隐含地调用了 toString() ``` ### 3. 使用 `String.valueOf()` 推荐的做法之一就是通过静态辅助函数 `String.valueOf()` 完成型工作,它不仅适用于各种基础数据类型的包装类、数组等复合结构体外,还能够在传入 null 参数时不报错而是返回字面量 `"null"` 字符串。 ```java Object maybeNullObj = null; String safeResult = String.valueOf(maybeNullObj); // 返回 "null" ``` ### 特殊注意事项: - **处理 Null 值**:当目标变量可能是 `null` 时特别要注意避免 NullPointerException (NPE),上述三种方案均能较好应对这种情况。 - **性能考量**:如果是高频次的操作,建议优先选用 `String.valueOf()` 函数而不是直接使用加号运算符来进行隐式的 `toString()` 调用,前者通常更为高效。 综上所述,在大多数情形下,采用 `String.valueOf(obj)` 是最合理的选择因为它既简洁又不易出错并且具备较好的兼容性和灵活性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值