当前位置: 首页 > news >正文

物流公司网站方案中山网站推广服务

物流公司网站方案,中山网站推广服务,php网站开发推荐书籍,编写网站策划方案一、思考 假设给一个java bean#xff0c;让你按照 json 的格式打印出来#xff0c;你会怎么做#xff1f; 比如这个java bean 长这样#xff0c;并且创建了一个叫宝儿姐的朋友 package com.test;public class User {private String name;private Integer age;private Bi…一、思考 假设给一个java bean让你按照 json 的格式打印出来你会怎么做 比如这个java bean 长这样并且创建了一个叫宝儿姐的朋友 package com.test;public class User {private String name;private Integer age;private BigDecimal mony;private ListUser childs;public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public BigDecimal getMony() {return mony;}public void setMony(BigDecimal mony) {this.mony mony;}public ListUser getChilds() {return childs;}public void setChilds(ListUser childs) {this.childs childs;} }public class JsonTest {public static void main(String[] args) throws Exception {User user new User();user.setAge(18);user.setName(宝儿姐);user.setMony(new BigDecimal(-4000000.5));ListUser userList new ArrayList();User son new User();son.setAge(1);son.setName(大壮);userList.add(son);User daughter new User();daughter.setAge(10);daughter.setName(小美);userList.add(daughter);user.setChilds(userList);// 打印java beanprintToJson(user);// 打印集合printToJson(userList);// 打印数值printToJson(new BigDecimal(1.235));printToJson((byte)2);printToJson((short)3);printToJson(4);printToJson(5.1F);printToJson(5.2D);printToJson(233L);// 打印字符串printToJson(小美);}private static void printToJson(User user) {// .....} } 我们调用 printToJson 之后期望的输出是长这样的 {name:宝儿姐,childs:[{name:大壮,age:1},{name:小美,age:10}],age:18,mony:-4000000.5} [{name:大壮,age:1},{name:小美,age:10}] 1.235 2 3 4 5.1 5.2 233 小美那么一个简单而又没啥设计的实现方式如下 public class JsonTest {public static void main(String[] args) throws Exception {User user new User();user.setAge(18);user.setName(宝儿姐);user.setMony(new BigDecimal(-4000000.5));ListUser userList new ArrayList();User son new User();son.setAge(1);son.setName(大壮);userList.add(son);User daughter new User();daughter.setAge(10);daughter.setName(小美);userList.add(daughter);user.setChilds(userList);// 打印java beanprintToJson(user);// 打印集合printToJson(userList);// 打印数值printToJson(new BigDecimal(1.235));printToJson((byte)2);printToJson((short)3);printToJson(4);printToJson(5.1F);printToJson(5.2D);printToJson(233L);// 打印字符串printToJson(小美);}private static T void printToJson(T obj) throws Exception {if (Objects.isNull(obj)) {System.out.println();return;}Class? tClass obj.getClass();StringWriter stringWriter new StringWriter();if (tClass String.class) {stringPrint(stringWriter, (String) obj);} else if (Number.class.isAssignableFrom(tClass)) {numberPrint(stringWriter, (Number) obj);} else if (Collection.class.isAssignableFrom(tClass)) {collectionPrint(stringWriter, (Collection) obj, null);// 省略数组map等各种类型的打印} else {javaBeanPrint(stringWriter, obj, tClass);}System.out.println(stringWriter.toString());}private static void javaBeanPrint(StringWriter stringWriter, Object javaBean, Class? tClass) throws Exception {// 不考虑继承Method[] methods tClass.getDeclaredMethods();if (Objects.isNull(methods) || methods.length 0) {stringWriter.append({});return;}stringWriter.append({);boolean hasPrev false;for (Method method : methods) {String methodName method.getName();if (methodName.startsWith(get) methodName.length() 3) {Object val method.invoke(javaBean);if (Objects.isNull(val)) {continue;}if (hasPrev) {stringWriter.append(,);}String propertyName methodName.substring(3);String newPropertyName;if (propertyName.length() 1) {newPropertyName propertyName.substring(0, 1).toLowerCase() propertyName.substring(1);} else {newPropertyName propertyName.substring(0, 1).toLowerCase();}stringWriter.append(\).append(newPropertyName).append(\).append(:);Class? returnType method.getReturnType();if (returnType String.class) {stringPrint(stringWriter, (String) val);} else if (Number.class.isAssignableFrom(returnType)) {numberPrint(stringWriter, (Number) val);} else if (Collection.class.isAssignableFrom(returnType)) {Type type method.getGenericReturnType();collectionPrint(stringWriter, (Collection) val, type);// 省略数组map等各种类型的打印} else {javaBeanPrint(stringWriter, val, val.getClass());}hasPrev true;}}stringWriter.append(});}private static void stringPrint(StringWriter stringWriter, String val) {stringWriter.append(\).append(val).append(\);}private static void numberPrint(StringWriter stringWriter, Number val) {if (val instanceof BigDecimal) {stringWriter.append(((BigDecimal) val).toPlainString());} else {stringWriter.append(val.toString());}}private static void collectionPrint(StringWriter stringWriter, Collection val, Type type) throws Exception {if(Objects.isNull(val) || val.size() 0) {stringWriter.append([]);return;}stringWriter.append([);boolean havPrev false;for (Object v : val) {if(Objects.isNull(v)) {continue;}if(havPrev) {stringWriter.append(,);}Class? vClass v.getClass();if (vClass String.class) {stringPrint(stringWriter, (String) v);} else if (Number.class.isAssignableFrom(vClass)) {numberPrint(stringWriter, (Number) v);} else if (Collection.class.isAssignableFrom(vClass)) {collectionPrint(stringWriter, (Collection) v, type);// 省略数组map等各种类型的打印} else {javaBeanPrint(stringWriter, v, vClass);}havPrev true;}stringWriter.append(]);} }以上是一个非常简单的实现我们可以看到针对每种数据类型它的序列化方式是不一样的所以其实 我们可以使用策略模式加以改造比如定义一个接口加一个参数上下文根据不同的数据类型实现 不同的序列化器。
http://www.hkea.cn/news/14582961/

相关文章:

  • 威县做网站哪里好宁波seo网络推广外包报价
  • 中南路网站建设公司网络营销策划案例
  • vs 网站开发wordpress博客vieu
  • 女性门户网站模板大理建网站
  • 线条类网站太原seo按天计费
  • 企业门户网站平台建设招标采购文件网站抽奖模板
  • 网站建设销售需要懂的知识中国商务服务网
  • 做外贸实用网站福州网站建设出格网络
  • 用phython做网站怎么做网站文件
  • 东莞网站制作南城长春网络公司查找垚鑫科技
  • 娄底网站建设公司有哪些如何做教育公司网站
  • 建设网站的总结桂林网站开发公司电话
  • 红色基调网站哈尔滨市人社app
  • 网站建设报价单模板下载贵州省住房和城乡建设官方网站
  • 怎么建立一个简易的网站郑州发布最新通告
  • 福建网站建设科技有限公司郑州网站优化技巧
  • 备案中的网站信息怎么填企业网站建设价格表
  • 怎么样做网站页面网站建设课程的感想
  • 百度竞价网站建设wordpress大商创会员
  • 乡镇网站建设内容规划石家庄电商网站开发
  • 别人的域名解析到了我的网站上wordpress无法创建目录安装失败
  • 网站开发vue设计一个商务网站
  • 邵阳网站设计东营网站建设价钱表
  • 洛阳建设工程网站网站建设参考文献
  • 二手物品交换网站建设哪些平台可以做推广
  • seo按天计费软件业务型网站做seo
  • 快速设计一个网站网站编辑楼盘详情页怎么做
  • android做网站中美关系最新消息2021
  • 做服装搭配图的网站有哪些做自己的网站后台
  • 网站美工要求网站建设找汉狮