什么是设置多种数据类型
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"什么是设置多种数据类型",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"什么是设置多种数据类型"吧!设置多种数据类型现在已经成功的实现了单级
千家信息网最后更新 2026年11月02日什么是设置多种数据类型
本篇内容主要讲解"什么是设置多种数据类型",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"什么是设置多种数据类型"吧!
设置多种数据类型
现在已经成功的实现了单级的属性配置,但是这里面依然需要考虑一个实际的情况:当前所给定的数据类型只是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安全错误
数据库的锁怎样保障安全
深圳九邦互联网科技有限公司
互联网科技工作委员会
互联网最新的科技
圆梦互联网科技
互联网 科技创业
善班互联网科技
为想互联网科技
睿民互联网科技
科技互联网创业计划书
央行互联网金融科技公司
互联网系的金融科技公司
互联网校园科技培训
互联网科技有哪些公司
互联网科技产业特征
速维有品互联网信息科技(苏州)有限公司
扫呗互联网科技有限公司
科技信息时代互联网发展
互联网的黑科技实验室
互联网科技创业有什么好项目
利用互联网等科技手段
广州紫鲸互联网科技有限公司
苏州找大状互联网科技有限公司
互联网科技作文
西安互联网科技公司
深圳市运趣互联网科技有限公司
青岛中康互联网医疗科技有限公司
湖南一路畅行互联网科技
新兴科技互联网创新大赛颁奖典礼
互联网保险科技创业
互联网时代高科技布局