什么是设置多种数据类型
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本篇内容主要讲解"什么是设置多种数据类型",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"什么是设置多种数据类型"吧!设置多种数据类型现在已经成功的实现了单级
千家信息网最后更新 2025年11月13日什么是设置多种数据类型
本篇内容主要讲解"什么是设置多种数据类型",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"什么是设置多种数据类型"吧!
设置多种数据类型
现在已经成功的实现了单级的属性配置,但是这里面依然需要考虑一个实际的情况:当前所给定的数据类型只是String。在实际的开发中面对简单Java类中的属性类型一般的可选为:long(Long)、int(Integer)、double(Double)、String、Date(日期、日期时间),所以这时对于当前的程序代码必须做出修改,要求可以实现各种数据类型的配置。
既然要求可以实现不同类型的内容设置,并且BeanUtils类主要是完成属性赋值处理的,那么就可以在这个类中追加一系列的处理方法。
import java.lang.reflect.Field;import java.lang.reflect.Method;public class JavaAPIDemo {public static void main(String[] args)throws Exception{ String value="empno:7369|ename:Smith|job:Clerk|salary:750.00|hiredate:1989-10-10"; Emp emp = ClassInstanceFactory.create(Emp.class, value); System.out.println("雇员编号:" + emp.getEmpno() + "、姓名:" + emp.getEname() + "、职位:" + emp.getJob() + "、基本工资:" + emp.getSalary() + "、受雇日期:" + emp.getHiredate()); }}class ClassInstanceFactory{private ClassInstanceFactory(){}/** * 实例化对象的创建方法,该对象可以根据传入的字符串结构:"属性:内容|属性:内容" * @param clazz 要进行反射实例化的Class对象,有Class就可以反射实例化对象 * @param value 要设置给对象的属性内容 * @return 一个已经配置好属性内容的Java对象 */public static T create(Class> clazz,String value){// 如果要想采用反射进行简单Java类对象属性设置的时候,类中必须要有无参构造try { Object obj = clazz.getDeclaredConstructor().newInstance(); BeanUtils.setValue(); //通过反射设置属性return (T) obj; //返回对象}catch (Exception e) { e.printStackTrace(); //如果此时真的出现了错误,本质上抛出异常也没用return null; } }}class StringUtils {public static String initcap(String str) {if (str == null || "".equals(str)) {return str; }if (str.length() == 1) {return str.toUpperCase(); }else {return str.substring(0, 1).toUpperCase() + str.substring(1); } }}class BeanUtils{ //进行Bean处理的类private BeanUtils(){}/** * 实现指定对象的属性设置 * @param obj 要进行反射操作的实例化对象 * @param value 包含有指定内容的字符串,格式"属性:内容|属性:内容" */public static void setValue(Object obj,String value){ String results [] = value.split("\\|");//按照"|"进行每一组属性的拆分for (int x = 0; x < results.length; x ++) { //循环设置属性内容//attval [0]保存的是属性名称,attval [1]保存的是属性内容String attval [] = results[x].split(":"); //获取"属性名称"和内容try { Field field = obj.getClass().getDeclaredField(attval[0]); //获取成员Method setMethod = obj.getClass().getDeclaredMethod("set" + StringUtils.initcap(attval [0]), field.getType()); Object convertValue = BeanUtils.convertAttributeValue(field.getType().getName(), attval[1]); setMethod.invoke(obj, convertValue); //调用setter方法设置内容}catch (Exception e) { } } }/** * 实现属性类型转换处理 * @param type 属性类型,通过Field获取 * @param value 属性的内容,传入的都是字符串,需要将其变为指定类型 * @return 转换后的数据类型 */private static Object convertAttributeValue(String type, String value) {if ("long".equals(type) || "java.lang.Long".equals(type)) { //长整型return Long.parseLong(value); }else if ("int".equals(type) || "java.lang.int".equals(type)) {return Integer.parseInt(value); }else if ("double".equals(type) || "java.lang.double".equals(type)) {return Integer.parseDouble(value); }else if ("java.util.Date".equals(type)) { SimpleDateFormat sdf = null;if (value.matches("\\d{4}-\\d{2}-\\d{2}") { //日期类型sdf = new SimpleDateFormat("yyyy-MM-dd"); } else if (value.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}") { sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); }else {return new Date() ; //当前日期}try {return sdf.parse(value); } catch(ParseException e) {return new Date() ; //当前日期} }else {return value; } }}class Emp{private long empno;private String ename;private String job;private double salary;private Date hiredate;public void setEname(String ename) {this.ename = ename; }public void setJob(String job) {this.job = job; }public String getEname() {return ename; }public String getJob() {return job; }public long getEmpno() {return empno; }public void setEmpno(Long empno) {this.empno = empno; }public double getSalary() {return salary; }public void setSalary(double salary) {this.salary = salary; }public Date getHiredate() {return hiredate; }public void setHiredate(Date hiredate) {this.hiredate = hiredate; }} 执行结果:
此时只是列举了常用几种数据类型,如果要将其作为产品推广,必须要考虑所有可能出现的类型,同时也要考虑所有可能会出现的日期格式。
到此,相信大家对"什么是设置多种数据类型"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
属性
类型
内容
对象
数据
日期
反射
多种
实例
方法
处理
字符
字符串
实际
配置
只是
名称
格式
学习
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大数据网络安全机构管理局算
数据库视图可以拉数据
镇江互联网软件开发哪个好
平台管理服务器价格
秦皇岛网络安全领导小组
2021年国家网络安全周ppt
服务器电源插座接法
国际计算机网络安全证书
资阳服务器ups电源
市南区app定制软件开发
虚拟化服务器怎么管理
网络技术是什么意思
prosite数据库
常用服务器操作系统
在服务器管理器中添加用户
退出数据库登录界面
列式数据库如何存储
中型软件开发证书
网络安全手抄报的模板
终端软件开发技术文档
华为什么时候开始做服务器的
数据库视图可以拉数据
网络安全漏洞实战
平度商城软件开发系统
西安立讯科技技师学院互联网
专科报计算机网络技术好吗
邮箱服务器授权码
我的世界网易版服务器病毒
软件开发下单员
互联网科技启动会ppt