社区
Java SE
帖子详情
关于java类型转换的问题…
tbssl
2019-06-25 09:16:26
事情是这样的。 现在有一堆储存为String类型的变量,和一个配置文件,文件里注明了每个变量的实际类型。 请问如何简洁地把这些变量变成它们的实际类型… 因为变量类型有点多,不希望用if else…写出来大概会很丑吧… 能不能用反射来做呢?
...全文
207
4
打赏
收藏
关于java类型转换的问题…
事情是这样的。 现在有一堆储存为String类型的变量,和一个配置文件,文件里注明了每个变量的实际类型。 请问如何简洁地把这些变量变成它们的实际类型… 因为变量类型有点多,不希望用if else…写出来大概会很丑吧… 能不能用反射来做呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
月光下的大D丶
2019-07-04
打赏
举报
回复
如果涉及业务逻辑 或者 if else 代码块中 重复的 比较多 ,可以考虑 策略模式来取代 if else
guishuanglin
2019-06-26
打赏
举报
回复
难道spring框架不也是这样做的, if else是可以的, 我就是这样写的: /** 根据已知T类型,把字符转换成相应T类型对象值,返回T */ public static <T> T getObject(String attrVal, Class<T> clazz, T defval) { String str = Convert.trimEmpty(attrVal); if(str == null || clazz == null) return null; try { if(String.class.isAssignableFrom(clazz)) { return clazz.cast(str); } else if(Integer.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getInt(str)); } else if(Long.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getLong(str)); } else if(Double.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getDouble(str)); } else if(BigDecimal.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getBigDecimal(str)); } else if(Float.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getFloat(str)); } else if(Short.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getShort(str)); } else if(Byte.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getByte(str)); } else if(int.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getint(str)); } else if(long.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getlong(str)); } else if(double.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getdouble(str)); } else if(float.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getfloat(str)); } else if(short.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getshort(str)); } else if(Date.class.isAssignableFrom(clazz)) { return clazz.cast(Convert.getDate(str)); } } catch(Exception e) { System.out.println("类型转换错误:"); e.printStackTrace(); return defval; } return defval; } /** * 把数据库数据,格式化成java对象 * @date 2008-10-25 */ public static Integer getInteger(Object data){ if(data==null){ return null; } if(data instanceof Integer){ return (Integer)data; } if(data instanceof Long){ return Integer.valueOf(((Long)data).intValue()); } if(data instanceof Short){ return Integer.valueOf(((Short)data).intValue()); } if(data instanceof Double){ return Integer.valueOf(((Double)data).intValue()); } if(data instanceof Float){ return Integer.valueOf(((Float)data).intValue()); } if(data instanceof BigDecimal){ return Integer.valueOf(((BigDecimal)data).intValue()); } if(data instanceof Byte){ return Integer.valueOf(((Byte)data).intValue()); } String s = String.valueOf(data).trim(); if(s.equals("")){ s = null; return null; } Integer v = null; try { v = new Integer(s); } catch (Exception e) { data = null; v = null; System.out.println("对象 "+s+" 转换成 Integer 数据错误."); } finally { data = null; s = null; } return v; }
立刀流
2019-06-25
打赏
举报
回复
配置文件里是注释?注释的话机器又看不懂
「已注销」
2019-06-25
打赏
举报
回复
int i = 0; switch(i)
关于
Java
中强制
类型转换
的
问题
本文深入探讨了
Java
中从List到数组的
类型转换
问题
,特别是从Object[]到具体类型的数组如String[]时可能遇到的强制
类型转换
错误。文章通过示例代码展示了如何避免此类错误,并解释了对象上转型的概念。
Java
基础-28- 多态 — 多态下的
类型转换
问题
本文围绕
Java
多态下的
类型转换
问题
展开。多态虽提供灵活性,但
类型转换
易出现
问题
。
类型转换
分向上转型和向下转型,向上转型安全,向下转型可能抛异常。还介绍了使用 instanceof 防止异常,强调转型时要理解引用指向的实际对象类型,谨慎操作。
java
中的强制
类型转换
注意事项_浅谈
Java
中强制
类型转换
的
问题
本文通过一个示例探讨了
Java
中强制
类型转换
的
问题
。在示例中,展示了将`List`转换为`String[]`时可能出现的错误。作者强调了`list.toArray()`返回的是`Object[]`类型,直接强制转换可能会导致编译错误。文章旨在帮助读者理解
Java
类型转换
的细节,特别是集合与数组之间的转换注意事项。
Java
_
类型转换
问题
_07
本文详细介绍了
Java
中的
类型转换
,包括自动
类型转换
和强制
类型转换
的过程与注意事项。通过具体实例展示了不同数据类型的转换规则及可能遇到的内存溢出或精度
问题
。
java
基础的
类型转换
排序以及
问题
博客主要介绍
Java
基础的
类型转换
,包括强制转换(高到低)和自动转换(低到高),还提及
类型转换
的注意点,如不能对布尔值转换、高转低需强制转换等,同时指出操作大数时可能出现溢出
问题
,并给出解决办法。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章