package sc.util;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
/**
* 类型转换辅助工具
* @version:1.0
*/
public class TypeCaseHelper {
/**
* 转换核心实现方法
*
* @param obj
* @param type
* @param format
* @return Object
* @throws TypeCastException
*/
public static Object convert(Object obj, String type, String format) throws TypeCastException {
Locale locale = new Locale("zh", "CN", "");
if (obj == null)
return null;
if (obj.getClass().getName().equals(type))
return obj;
if ("Object".equals(type) || "java.lang.Object".equals(type))
return obj;
String fromType = null;
if (obj instanceof String) {
fromType = "String";
String str = (String) obj;
if ("String".equals(type) || "java.lang.String".equals(type))
return obj;
if (str.length() == 0)
return null;
if ("Boolean".equals(type) || "java.lang.Boolean".equals(type)) {
Boolean value = null;
if (str.equalsIgnoreCase("TRUE"))
value = new Boolean(true);
else
value = new Boolean(false);
return value;
}
if ("Double".equals(type) || "java.lang.Double".equals(type))
try {
Number tempNum = getNf(locale).parse(str);
return new Double(tempNum.doubleValue());
} catch (ParseException e) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
if ("BigDecimal".equals(type) || "java.math.BigDecimal".equals(type))
try {
BigDecimal retBig = new BigDecimal(str);
int iscale = str.indexOf(".");
int keylen = str.length();
if (iscale > -1) {
iscale = keylen - (iscale + 1);
return retBig.setScale(iscale, 5);
} else {
return retBig.setScale(0, 5);
}
} catch (Exception e) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
if ("Float".equals(type) || "java.lang.Float".equals(type))
try {
Number tempNum = getNf(locale).parse(str);
return new Float(tempNum.floatValue());
} catch (ParseException e) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
if ("Long".equals(type) || "java.lang.Long".equals(type))
try {
NumberFormat nf = getNf(locale);
nf.setMaximumFractionDigits(0);
Number tempNum = nf.parse(str);
return new Long(tempNum.longValue());
} catch (ParseException e) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
if ("Integer".equals(type) || "java.lang.Integer".equals(type))
try {
NumberFormat nf = getNf(locale);
nf.setMaximumFractionDigits(0);
Number tempNum = nf.parse(str);
return new Integer(tempNum.intValue());
} catch (ParseException e) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
if ("Date".equals(type) || "java.sql.Date".equals(type)) {
if (format == null || format.length() == 0)
try {
return Date.valueOf(str);
} catch (Exception e) {
try {
DateFormat df = null;
if (locale != null)
df = DateFormat.getDateInstance(3, locale);
else
df = DateFormat.getDateInstance(3);
java.util.Date fieldDate = df.parse(str);
return new Date(fieldDate.getTime());
} catch (ParseException e1) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
}
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
java.util.Date fieldDate = sdf.parse(str);
return new Date(fieldDate.getTime());
} catch (ParseException e) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
}
if ("Timestamp".equals(type) || "java.sql.Timestamp".equals(type)) {
if (str.length() == 10)
str = str + " 00:00:00";
if (format == null || format.length() == 0)
try {
return Timestamp.valueOf(str);
} catch (Exception e) {
try {
DateFormat df = null;
if (locale != null)
df = DateFormat.getDateTimeInstance(3, 3, locale);
else
df = DateFormat.getDateTimeInstance(3, 3);
java.util.Date fieldDate = df.parse(str);
return new Timestamp(fieldDate.getTime());
} catch (ParseException e1) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
}
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
java.util.Date fieldDate = sdf.parse(str);
return new Timestamp(fieldDate.getTime());
} catch (ParseException e) {
throw new TypeCastException("Could not convert " + str + " to " + type + ": ", e);
}
} else {
throw new TypeCastException("Conversion from " + fromType + " to " + type + " not currently supported");
}
}
if (obj instanceof BigDecimal) {
fromType = "BigDecimal";
BigDecimal bigD = (BigDecimal) obj;
if ("String".equals(type))
return getNf(locale).format(bigD.doubleValue());
if ("BigDecimal".equals(type) || "java.math.BigDecimal".equals(type))
return obj;
if ("Double".equals(type))
return new Double(bigD.doubleValue());
if ("Float".equals(type))
return new Float(bigD.floatValue());
if ("Long".equals(type))
return new Long(Math.round(bigD.doubleValue()));
if ("Integer".equals(type))
return new Integer((int) Math.round(bigD.doubleValue()));
else
throw new TypeCastException("Conversion from " + fromType + " to " + type + " not currently supported");
}
if (obj instanceof Double) {
fromType = "Double";
Double dbl = (Double) obj;
if ("String".equals(type) || "java.lang.String".equals(type))
return getNf(locale).format(dbl.doubleValue());
if ("Double".equals(type) || "java.lang.Double".equals(type))
return obj;
if ("Float".equals(type) || "java.lang.Float".equals(type))
return new Float(dbl.floatValue());
if ("Long".equals(type) || "java.lang.Long".equals(type))
return new Long(Math.round(dbl.doubleValue()));
if ("Integer".equals(type) || "java.lang.Integer".equals(type))
return new Integer((int) Math.round(dbl.doubleValue()));
if ("BigDecimal".equals(type) || "java.math.BigDecimal".equals(type))
return new BigDecimal(dbl.toString());
else
throw new TypeCastException("Conversion from " + fromType + " to " + type + " not currently supported");
}
if (obj instanceof Float) {
fromType = "Float";
Float flt = (Float) obj;
if ("String".equals(type))
return getNf(locale).format(flt.doubleValue());
if ("BigDecimal".equals(type) || "java.math.BigDecimal".equals(type))
return new BigDecimal(flt.doubleValue());
if ("Double".equals(type))
return new Double(flt.doubleValue());
if ("Float".equals(type))
return obj;
if ("Long".equals(type))
return new Long(Math.round(flt.doubleValue()));
if ("Integer".equals(type))
return new Integer((int) Math.round(flt.doubleValue()));
else
throw new TypeCastException("Conversion from " + fromType + " to " + type + " not currently supported");
}
if (obj instanceof Long) {
fromType = "Long";
Long lng = (Long) obj;
if ("String".equals(type) || "java.lang.String".equals(type))
return getNf(locale).format(lng.longValue());
if ("Double".equals(type) || "java.lang.Double".equals(type))
return new Double(lng.doubleValue());
if ("Float".equals(type) || "java.lang.Float".equals(type))
return new Float(lng.floatValue());
if ("BigDecimal".equals(type) || "java.math.BigDecimal".equals(type))
return new BigDecimal(lng.toString());
if ("Long".equals(type) || "java.lang.Long".equals(type))
return obj;
if ("Integer".equals(type) || "java.lang.Integer".equals(type))
return new Int
没有合适的资源?快使用搜索试试~ 我知道了~
爬虫项目实例源码资源分享
共344个文件
png:116个
jar:63个
class:39个
需积分: 1 0 下载量 82 浏览量
2024-01-16
21:13:35
上传
评论
收藏 40.55MB ZIP 举报
温馨提示
爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享爬虫项目实例源码资源分享
资源推荐
资源详情
资源评论
收起资源包目录
爬虫项目实例源码资源分享 (344个子文件)
TypeCaseHelper.class 10KB
MovieIndex.class 10KB
AdminMovieController.class 7KB
IdCardUtil.class 7KB
AQYSpider.class 7KB
TXSpider.class 7KB
MovieController.class 6KB
ExportExcelUtil.class 4KB
ImportExcelUtil.class 4KB
AQYSpider$1.class 4KB
TXSpider$1.class 4KB
Movie.class 4KB
SessionTimeoutInterceptor.class 3KB
UserController.class 3KB
StringUtil.class 3KB
SystemAdminController.class 2KB
MyRealm.class 2KB
PageUtilMoblile.class 2KB
TypeCastException.class 2KB
PageUtil.class 2KB
MovieServiceImpl.class 2KB
InitComponent.class 2KB
DateUtil.class 1KB
PropertiesUtil.class 1KB
DateJsonValueProcessor.class 1KB
CryptographyUtil.class 1KB
Pair.class 1005B
UserServiceImpl.class 987B
User.class 958B
ResponseUtil.class 931B
PageBeanForOrcle.class 916B
PageBeanForMySql.class 827B
InitPairServiceImpl.class 752B
MovieDao.class 646B
MovieService.class 599B
UserService.class 267B
UserDao.class 255B
InitPairService.class 223B
InitPairDao.class 211B
.classpath 884B
org.eclipse.wst.common.component 550B
org.eclipse.wst.jsdt.ui.superType.container 49B
layer.css 14KB
index.css 8KB
home.css 6KB
info-mgt.css 6KB
base.css 6KB
layer.css 5KB
index.css 5KB
login.css 4KB
datepicker.css 4KB
datepicker.css 4KB
jquery.dialog.css 3KB
info-reg.css 3KB
print.css 2KB
loading.css 590B
WdatePicker.css 192B
WdatePicker.css 158B
loading-0.gif 6KB
loader.gif 2KB
loading-2.gif 2KB
img.gif 2KB
img.gif 2KB
datePicker.gif 1KB
loading-1.gif 701B
tools-1.8.0.jar 14.56MB
poi-ooxml-schemas-3.13-20150929.jar 5.38MB
lucene-analyzers-smartcn-5.3.1.jar 3.44MB
poi-3.13-20150929.jar 2.38MB
lucene-core-5.3.1.jar 2.25MB
druid-1.0.16.jar 1.94MB
aspectjweaver-1.8.6.jar 1.78MB
lucene-analyzers-common-5.3.1.jar 1.49MB
ojdbc14.jar 1.48MB
mybatis-3.3.0.jar 1.35MB
poi-ooxml-3.13-20150929.jar 1.09MB
jackson-databind-2.5.0.jar 1.08MB
spring-context-4.1.7.RELEASE.jar 1003KB
spring-core-4.1.7.RELEASE.jar 985KB
htmlunit-2.9.jar 980KB
mysql-connector-java-5.1.37.jar 963KB
spring-webmvc-4.1.7.RELEASE.jar 764KB
httpclient-4.5.2.jar 719KB
spring-web-4.1.7.RELEASE.jar 705KB
spring-beans-4.1.7.RELEASE.jar 696KB
commons-collections-3.2.1.jar 562KB
log4j-1.2.17.jar 478KB
spring-jdbc-4.1.7.RELEASE.jar 417KB
jstl-1.2.jar 405KB
jconsole-1.8.0.jar 394KB
lucene-queryparser-5.3.1.jar 392KB
shiro-core-1.2.4.jar 371KB
spring-aop-4.1.7.RELEASE.jar 351KB
fastjson-1.1.33.jar 343KB
jsoup-1.10.2.jar 342KB
httpcore-4.4.1.jar 315KB
jsoup-1.8.3.jar 308KB
commons-lang-2.6.jar 278KB
lucene-sandbox-5.3.1.jar 260KB
commons-codec-1.9.jar 258KB
共 344 条
- 1
- 2
- 3
- 4
资源评论
广寒舞雪
- 粉丝: 1392
- 资源: 155
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 全球前8GDP数据图(python动态柱状图)
- 汽车检测7-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 检测高压线电线-YOLO(v5至v9)、COCO、Darknet、VOC数据集合集.rar
- 检测行路中的人脸-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、VOC数据集合集.rar
- Image_17083039753012.jpg
- 检测生锈铁片生锈部分-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、VOC数据集合集.rar
- 检测桌面物体-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 基于Java实现的动态操作实体属性及数据类型转换的设计源码
- x32dbg-And-x64dbg-for-windows逆向调试
- 检测是否佩戴口罩-YOLO(v5至v9)、Paligemma、TFRecord、VOC数据集合集.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功