Java中Object转换为int类型或String类型

本文介绍了Java中不同数据类型之间的转换方法,包括String与int、Object与int、Object与String、Object与Date等类型的转换,并提供了具体的代码实现示例。

一、判断Object的类型

下面是截取的一个判断Objec的类型,然后给Excel的单元格设置类型和添加值的操作:

obj instanceof 类型
Object obj = entityMap.get(j);
if (obj instanceof Integer) {
     cell.setCellType(Cell.CELL_TYPE_NUMERIC);
     cell.setCellStyle(cellStyleMap.get(j).getCellStyle());
     cell.setCellValue((int) obj);
 } else if (obj instanceof Double) {
     cell.setCellType(Cell.CELL_TYPE_NUMERIC);
     cell.setCellStyle(cellStyleMap.get(j).getCellStyle());
     cell.setCellValue((Double) obj);
 }else 。。。

二、String与int类型相互转换

String转换为int类型的方法:

  • Integer.parseInt([String])
  • Integer.valueOf([String]).intValue();
  • Integer.decode([String]):将 String 解码为 Integer。接受通过以下语法给出的十进制、十六进制和八进制数字

int转换为String类型:

  • String s = String.valueOf(i);
  • String s = Integer.toString(i);
  • String s = “” + i;

三、Object类型转换为int类型

  • 如果object是byte,short,int,char类型生成的,那么不用转换直接赋值就ok了。
  • 如果object是字符串类型生成的,先把object转换为String类型的,再把String类型转换为int类型。

String myInt=“123”;
Object os=myInt;
int b=Integer.parseInt((String)os);//还可以os.toString()
如果object是float,double,long类型生成的,思路和上面一样,先把object转换为相应的数据类型,然后再转换为int类型。


四、Object类型转换为String类型

  • String title=String.valueOf(obj);
  • String content=String.valueOf(obj);

五、Object类型转换为Date类型

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-mm-dd”);
String indate=sdf.format(date);
Date indate=sdf.parse(String);

Java 中,将 `Object` 类型转换为 `int` 类型时,需要确保该对象的实际类型是 `Integer` 其子类,者可以通过自动拆箱机制进行转换。如果对象是 `String` 类型,则需要通过 `Integer.parseInt()` 方法显式转换;如果对象是 `Double`、`Float` 其他数值类型,则需要先转换为 `Number` 类型,再调用 `intValue()` 方法获取整数值。 ### 使用类型检查和强制类型转换 如果已知对象的实际类型是 `Integer`,可以直接进行强制类型转换: ```java Object obj = 123; int value = (Integer) obj; ``` 此方法适用于对象本身就是 `Integer` 类型的情况,若对象是其他类型(如 `String` `Double`),则会抛出 `ClassCastException` [^2]。 ### 使用 `Integer.parseInt()` 转换字符串对象 如果对象是表示整数的字符串类型,可以通过 `Integer.parseInt()` 进行转换: ```java Object obj = "123"; int value = Integer.parseInt((String) obj); ``` 注意,该字符串必须是有效的整数表示形式,否则会抛出 `NumberFormatException` [^1]。 ### 使用 `Number` 类型转换其他数值对象 如果对象是 `Number` 的子类(如 `Double`、`Float`、`Long` 等),可以调用 `intValue()` 方法进行转换: ```java Object obj = 123.45; int value = ((Number) obj).intValue(); ``` 此方法会将浮点数截断为整数部分,适用于 `Double`、`Float`、`Long` 等数值类型 [^3]。 ### 安全转换策略 为了避免运行时异常,应在转换前进行类型检查: ```java Object obj = "123"; if (obj instanceof Integer) { int value = (Integer) obj; } else if (obj instanceof String) { int value = Integer.parseInt((String) obj); } else if (obj instanceof Number) { int value = ((Number) obj).intValue(); } ``` 此方法可以避免类型不匹配导致的异常,提高程序的健壮性 [^2]。 ### 使用反射获取字段值时的处理 如果通过反射获取字段值并转换为 `int`,应使用 `Field.getInt()` 方法以避免类型转换错误: ```java Field field = obj.getClass().getField("intValue"); int value = field.getInt(obj); ``` 对于其他基本类型字段,应使用对应的 `getXXX()` 方法(如 `getShort()`、`getByte()` 等)以确保类型匹配 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值