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

网站后台怎么上传图片产品互联网商城有限公司

网站后台怎么上传图片产品,互联网商城有限公司,微信电脑版官方下载,公司制作网站前言#xff1a;在此行文《java annotation高级应用》#xff0c;具体实例化解释annotation和annotation processing tool(APT)的使用。望能对各位的有所帮助。一、摘要#xff1a;《java annotation高级应用》具体实例化解释annotation和annotation processing tool(APT)的…前言在此行文《java annotation高级应用》具体实例化解释annotation和annotation processing tool(APT)的使用。望能对各位的有所帮助。一、摘要《java annotation高级应用》具体实例化解释annotation和annotation processing tool(APT)的使用。望能对各位的有所帮助。本文列举了用于演示annotation的BRFW演示框架、演示APT的apt代码实例并对其进行较为深度的分析希望大家多多提意见。二、annotation实例分析1BRFW(Beaninfo Runtime FrameWork)定义本人编写的一个annotation功能演示框架。顾名思义BRFW就是在运行时取得bean信息的框架。2BRFW的功能A源代码级annotation在bean的源代码中使用annotation定义bean的信息B运行时获取bean数据在运行时分析bean class中的annotation并将当前bean class中field信息取出功能类似xdocletC运行时bean数据的xml绑定将获得的bean数据构造为xml文件格式展现。熟悉j2ee的朋友知道这个功能类似jaxb。3BRFW框架BRFW主要包含以下几个类APersistent类定义了用于修饰类的固有类型成员变量的annotation。BExportable类定义了用于修饰Class的类型的annotation。CExportToXml类核心类用于完成BRFW的主要功能将具有Exportable Annotation的bean对象转换为xml格式文本。DAddressForTest类被A和B修饰过的用于测试目的的地址bean类。其中包含了地址定义所必需的信息国家、省级、城市、街道、门牌等。EAddressListForTest类被A和B修饰过的友人通讯录bean类。其中包含了通讯录所必备的信息友人姓名、年龄、电话、住址(成员为AddressForTest类型的 ArrayList)、备注。需要说明的是电话这个bean成员变量是由字符串类型组成的ArrayList类型。由于朋友的住址可能不唯一故这里的住址为由AddressForTest类型组成的ArrayList。从上面的列表中可以发现A、B用于修饰bean类和其类成员C主要用于取出bean类的数据并将其作xml绑定代码中使用了E作为测试类E中可能包含着多个D。在了解了这个简单框架后我们来看一下BRFW的代码吧4BRFW源代码分析APersistent类清单1package com.bjinfotech.practice.annotation.runtimeframework;import java.lang.annotation.*;/*** 用于修饰类的固有类型成员变量的annotation* author cleverpig**/Retention(RetentionPolicy.RUNTIME)Target(ElementType.FIELD)public interface Persistent {            String value() default ;   }   BExportable类   清单2   package com.bjinfotech.practice.annotation.runtimeframework;   import java.lang.annotation.*;   /**   * 用于修饰类的类型的annotation   * author cleverpig   *   */   Retention(RetentionPolicy.RUNTIME)   Target(ElementType.TYPE)   public interface Exportable {            //名称            String name() default ;            //描述            String description() default ;            //省略name和description后用来保存name值            String value() default ;   }   CAddressForTest类   清单3   package com.bjinfotech.practice.annotation.runtimeframework;   /**   * 用于测试的地址类   * author cleverpig   *   */   Exportable(address)   public class AddressForTest {            //国家            Persistent            private String countrynull;            //省级            Persistent            private String provincenull;            //城市            Persistent            private String citynull;            //街道            Persistent            private String streetnull;            //门牌            Persistent            private String doorplatenull;            public AddressForTest(String country,String province,                            String city,String street,String doorplate){                    this.countrycountry;                    this.provinceprovince;                    this.citycity;                    this.streetstreet;                    this.doorplatedoorplate;            }   }   DAddressListForTest类   清单4   package com.bjinfotech.practice.annotation.runtimeframework;   import java.util.*;   /**   * 友人通讯录   * 包含姓名、年龄、电话、住址(多个)、备注   * author cleverpig   *   */   Exportable(nameaddresslist,descriptionaddress list)   public class AddressListForTest {            //友人姓名            Persistent            private String friendNamenull;            //友人年龄            Persistent            private int age0;            //友人电话            Persistent            private ArrayList teleph;            //友人住址家庭、单位            Persistent            private ArrayList AddressForTextnull;            //备注            Persistent            private String notenull;            public AddressListForTest(String name,int age,                            ArrayList telephoneList,                            ArrayList addressList,                            String note){                    this.friendNamename;                    this.ageage;                    this.teleph ArrayList(telephoneList);                    this.AddressForTextnew ArrayList(addressList);                    this.notenote;            }   }   EExportToXml类   清单5   package com.bjinfotech.practice.annotation.runtimeframework;   import java.lang.reflect.Field;   import java.util.Collection;   import java.util.Iterator;   import java.util.Map;   import java.util.ArrayList;   /**   * 将具有Exportable Annotation的对象转换为xml格式文本   * author cleverpig   *   */   public class ExportToXml {            /**             * 返回对象的成员变量的值(字符串类型)             * param field 对象的成员变量             * param fieldTypeClass 对象的类型             * param obj 对象             * return 对象的成员变量的值(字符串类型)             */            private String getFieldValue(Field field,Class fieldTypeClass,Object obj){                    String valuenull;                    try{                            if (fieldTypeClassString.class){                                    value(String)field.get(obj);                            }                            else if (fieldTypeClassint.class){                                    valueInteger.toString(field.getInt(obj));                            }                            else if (fieldTypeClasslong.class){                                    valueLong.toString(field.getLong(obj));                            }                            else if (fieldTypeClassshort.class){                                    valueShort.toString(field.getShort(obj));                            }                            else if (fieldTypeClassfloat.class){                                    valueFloat.toString(field.getFloat(obj));                            }                            else if (fieldTypeClassdouble.class){                                    valueDouble.toString(field.getDouble(obj));                            }                            else if (fieldTypeClassbyte.class){                                    valueByte.toString(field.getByte(obj));                            }                            else if (fieldTypeClasschar.class){                                    valueCharacter.toString(field.getChar(obj));                            }                            else if (fieldTypeClassboolean.class){                                    valueBoolean.toString(field.getBoolean(obj));                            }                    }                    catch(Exception ex){                            ex.printStackTrace();                            valuenull;                    }                    return value;            }            /**             * 输出对象的字段当对象的字段为Collection或者Map类型时要调用exportObject方法继续处理             * param obj 被处理的对象             * throws Exception             */            public void exportFields(Object obj) throws Exception{                    Exportable exportableobj.getClass().getAnnotation(Exportable.class);                            if (exportable!null){                            if (exportable.value().length()0){   //                                 System.out.println(Class annotation Name:exportable.value());                            }                            else{   //                                 System.out.println(Class annotation Name:exportable.name());                            }                    }                    else{   //                         System.out.println(obj.getClass()类不是使用Exportable标注过的);                    }                    //取出对象的成员变量                    Field[] fieldsobj.getClass().getDeclaredFields();                    for(Field field:fields){                            //获得成员变量的标注                            Persistent fieldAnnotationfield.getAnnotation(Persistent.class);                            if (fieldAnnotationnull){                                    continue;                            }                            //重要:避免java虚拟机检查对私有成员的访问权限                            field.setAccessible(true);                            Class typeClassfield.getType();                            String namefield.getName();                            String valuegetFieldValue(field,typeClass,obj);                            //如果获得成员变量的值则输出                            if (value!null){                                    System.out.println(getIndent()\n                                                    getIndent()\tvalue\ngetIndent());                            }                            //处理成员变量中类型为Collection或Map                            else if ((field.get(obj) instanceof Collection)||                                            (field.get(obj) instanceof Map)){                                    exportObject(field.get(obj));                            }                            else{                                    exportObject(field.get(obj));                            }                    }            }            //缩进深度            int levelDepth0;            //防止循环引用的检查者循环引用现象如a包含b而b又包含a            Collection
http://www.pierceye.com/news/875642/

相关文章:

  • 服务器硬件影响网站速度网站链接优化
  • 商品网站建设格式最火的做网站源码语言
  • 商城建站系统多少钱商标网官方查询官网
  • 织梦网站怎么做备份昆明航空公司官方网站
  • 大什么的网站建设公司达州网站建设哪家好
  • 漳州网站建设优化房地产网站建设意义
  • 兰州酒店网站建设app推广联盟平台
  • 周边产品设计培训哪家好响应式网站做优化好吗
  • 互联网金融整站seo排名要多少钱
  • 阜宁县城乡建设局新的官方网站重庆智能网站建设哪里有
  • 做ppt常用的网站有哪些建设网络强国要有自己的技术
  • 保险网站有哪些保险网站网页设计与制作课程说明
  • 海外网站seo优化wordpress支持asp.net
  • 什么网站做企业邮箱服务单页网站cms
  • 做电商网站的框架结构图wordpress用户标签
  • 益阳做网站的公司濮阳新闻直播
  • 网站logo更换晋城市 制作网站
  • 读书网站建设策划书摘要推荐网站建设案例
  • 西安网站建设 大德wordpress图片浏览
  • 陕西建设注册中心网站网页设计与制作长江职业学院
  • 佛山网站设计外包有没有做淘宝客网站的
  • 手机怎么做3d短视频网站网站开发工程师php岗位职责
  • 莆田做网站公司电话人才网站建设方案
  • 找人做网站需要问哪些问题桂林漓江悦府
  • 专门做2次元图片的网站高清vpswindows在线看
  • 青岛手机建站公司网站源码com大全
  • 电脑搭建网站需要空间wordpress文件夹权限设置方法
  • 建设网站基础医疗网站建设比较好的
  • 建个网站视频教程小程序开发是前端还是后端
  • 广州分享网站建设网站速度查询