亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java反射技術與類使用示例

2019-11-26 15:33:21
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

package com.java.db;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.java.entity.BookShelf;
import com.java.util.GetMetaDataCloumName;
public class GetNewInstances<T> {
 Class[] cl = {};
 Object[] ob = {};
 /**
  * 每次用完之后設為空 不然會累加
  */
 public void setNullToArrays(){
  this.cl = new Class[]{};
  this.ob = new Object[]{};
 }
 /**
  * copy Object數組
  *
  * @param obj
  *            構造方法里需要的實際值
  * @return
  */
 public Object[] getObjectArrays(Object obj) {
   ob = Arrays.copyOf(ob,ob.length + 1);
   ob[ob.length - 1] = obj;
   return ob;
 }

 /**
  * copy Class 數組
  *
  * @param cla
  *            要添加的class
  *
  * @return
  */
 @SuppressWarnings("unchecked")
 public Class[] getClassArrays(Class<?> cla) {
  if (cla != null) {
   cl = Arrays.copyOf(cl,cl.length + 1);
   cl[cl.length - 1] = cla;
   return cl;
  }else{
   return cl;
  }
 }

 /**
  * 得到類的實例
  *
  * @param clazz
  *            要實例化的類
  * @return 實例化之后的類
  * @throws InstantiationException
  * @throws IllegalAccessException
  * @throws IllegalArgumentException
  * @throws SecurityException
  * @throws InvocationTargetException
  * @throws NoSuchMethodException
  */
 @SuppressWarnings("unchecked")
 public Object getClassNewInstance(Class<?> clazz)
   throws InstantiationException, IllegalAccessException,
   IllegalArgumentException, SecurityException,
   InvocationTargetException, NoSuchMethodException {
  Object oj = null;
  Constructor[] cons = clazz.getDeclaredConstructors();// 得到構造函數
  Class[] cla = cons[1].getParameterTypes();
     System.out.println("提示用戶是否需要添加字段   構造函數參數的大小:"+cla.length);
  for (int i = 0; i < cla.length; i++) {
   String classStr = cla[i].toString();
   // System.out.println("參數的類型:"+classStr);
   if (classStr.equals("class java.lang.String")) {
    getClassArrays(String.class);
   } else if (classStr.equals("int")) {
    getClassArrays(int.class);
   } else if (classStr.equals("double")) {
    getClassArrays(double.class);
   } else if (classStr.equals("boolean")) {
    getClassArrays(boolean.class);
   } else if (classStr.equals("float")) {
    getClassArrays(float.class);
   } else if (classStr.equals("class java.lang.Integer")) {
    getClassArrays(Integer.class);
   }else if(classStr.equals("class java.lang.Float")){
    getClassArrays(Float.class);
   }
  }
  oj =  clazz.newInstance();//返回當前對象 具體的實例化構造在BDOperater
  return oj;
 }
 /**
  * 通過構造函數得到具體的實例類
  * @param clazz
  * @return
  * @throws IllegalArgumentException
  * @throws SecurityException
  * @throws InstantiationException
  * @throws IllegalAccessException
  * @throws InvocationTargetException
  * @throws NoSuchMethodException
  */
 public Object getObjCon(Class<?> clazz) throws IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException{
  Object obj=null;
   obj = this.getClassNewInstance(clazz);
  return obj;
 }
 /**
  * 得到對象的實例
  * @param clazz
  * @return
  * @throws InstantiationException
  * @throws IllegalAccessException
  */
 public Object getNewinstance(Class clazz) throws InstantiationException, IllegalAccessException{
  Object obj = null;
  obj =  clazz.newInstance();
  return obj;
 }
 /**
  * 根據反射得到類中的所有屬性
  * @param clazz 需要被獲取屬性的類
  * @return 屬性集合
  * @throws SecurityException
  * @throws IllegalArgumentException
  * @throws InstantiationException
  * @throws IllegalAccessException
  * @throws InvocationTargetException
  * @throws NoSuchMethodException
  */
 public Field[] getFielsdArray(Class<Object> clazz) throws SecurityException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException{
  Field[] fields = null;
  fields = clazz.getDeclaredFields();
  return fields;
 }
    /**
     * 根據字符串得到setter格式的屬性
     * @param str 需要格式化的屬性
     * @return
     */
 public String getSetterStr(String str){
  String info = null;
  String strValue = str.substring(0,1).toUpperCase();
  info = "set"+strValue+str.substring(1,str.length());
  return info;
 }
 /**
  * 把setXX還原為XX
  * @param str
  * @return
  */
 public String setSetStr(String str){
  String info = null;
  String strValue = str.substring(3,str.length());
  String lower = strValue.substring(0).toLowerCase().substring(0,1);
  info = lower+str.substring(4,str.length());
  return info;
 }
 /**
  * 得到類中的方法
  * @param clazz 需要的得到方法的類
  * @return
  */
 public Method[] getMethodsArray(Class clazz){
  Method[] methods = clazz.getMethods();
  return methods;
 }
 /**
  * 根據list<map>實例化構造函數
  * @param listMap
  * @param clazz
  * @param tableName 數據庫名稱
  * @return
 * @throws NoSuchMethodException
 * @throws InvocationTargetException
 * @throws SecurityException
 * @throws IllegalArgumentException
 * @throws IllegalAccessException
 * @throws InstantiationException
  */
 @SuppressWarnings({ "unchecked" })
 public List<Object> getListByMap(List<Map<String,Object>> listMap,Class clazz,String tableName) throws InstantiationException, IllegalAccessException, IllegalArgumentException, SecurityException, InvocationTargetException, NoSuchMethodException{
  List<Object> listLast = new ArrayList<Object>();
  List<String> metaList = GetMetaDataCloumName.getCloumNameList(tableName);
  Iterator<Map<String,Object>> it = listMap.iterator();
  while(it.hasNext()){
           Map<String,Object> map = it.next();
           Iterator<String> iitt = metaList.iterator();
           while(iitt.hasNext()){
             String info = iitt.next();
             this.getObjectArrays(map.get(info));
           }
            System.out.println("調用反射:"+this.cl.length+"    "+this.ob.length);
           Object Tobj = this.getClassNewInstance(clazz).getClass().getConstructor(this.cl).newInstance(this.ob);
           listLast.add(Tobj);
           this.setNullToArrays();
  }
  return listLast;
 }
 public static void main(String[] args) {
  GetNewInstances ge = new GetNewInstances();
  System.out.println(ge.getSetterStr("nameSpace")=="setNameSpace");
  System.out.println("1a"=="1a");
  System.out.println(ge.setSetStr("setNameSpace"));
 }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情图片区| 欧美国产亚洲视频| 亚洲va欧美va国产综合久久| 欧美日韩国产一区二区| 欧美成人全部免费| 亚洲一区二区三区香蕉| 成人欧美一区二区三区在线| www.欧美视频| 色综合久久悠悠| 日韩高清av在线| 日韩高清电影好看的电视剧电影| 精品香蕉在线观看视频一| 国产美女久久久| 亚洲成人激情图| 91wwwcom在线观看| 国产日韩综合一区二区性色av| 亚洲人成在线观| 欧美中文在线免费| 国产日韩视频在线观看| 亚洲视频在线观看| 欧美自拍视频在线| 日韩在线观看网站| 亚洲一区中文字幕在线观看| 欧美日韩一区二区免费视频| 久久av.com| 狠狠躁18三区二区一区| 亚洲一区美女视频在线观看免费| 在线观看日韩专区| 亚洲成成品网站| 亚洲成avwww人| 日韩av手机在线| 日本最新高清不卡中文字幕| 国产一区香蕉久久| 亚洲专区中文字幕| 成人中心免费视频| 亚洲精品福利免费在线观看| 国产精品色视频| www.日韩.com| 亚洲最大成人免费视频| 日韩av成人在线| 国产精品成人一区| 国产精品久久久av久久久| 7777精品久久久久久| 欧美日韩亚洲网| 国产欧美日韩中文字幕在线| 日本人成精品视频在线| 亚洲精品一区在线观看香蕉| 97视频在线播放| 国产在线播放不卡| www.久久色.com| 久久久久久国产| 日韩网站免费观看| 中文精品99久久国产香蕉| 欧美日韩成人在线视频| 日韩av在线网址| 久久久久久久久久久亚洲| 三级精品视频久久久久| 97久久伊人激情网| 黑丝美女久久久| 亚洲色图第三页| 成人黄色免费网站在线观看| 中文字幕亚洲国产| 精品人伦一区二区三区蜜桃免费| 裸体女人亚洲精品一区| 国产激情久久久久| 91精品国产99| 欧美性xxxx极品hd欧美风情| 永久555www成人免费| 欧美成人精品一区二区三区| 最近2019中文字幕在线高清| 57pao成人国产永久免费| 中文字幕在线日韩| 精品久久久国产| 日本一区二区不卡| 91免费人成网站在线观看18| 亚洲在线观看视频| 亚洲iv一区二区三区| 国产成人精品综合久久久| 97精品免费视频| 亚洲天堂久久av| 久久久亚洲福利精品午夜| zzjj国产精品一区二区| 中文字幕亚洲欧美一区二区三区| 亚洲高清av在线| 一本一本久久a久久精品牛牛影视| 亚洲最大av网| 亚洲欧洲高清在线| 人人爽久久涩噜噜噜网站| 久久精品视频一| 国产一区二区三区丝袜| 亚洲美女精品成人在线视频| 国产视频久久网| 久久久久久久久国产| 欧美理论电影在线观看| 国色天香2019中文字幕在线观看| 欧美大奶子在线| 777午夜精品福利在线观看| 久久深夜福利免费观看| 97精品欧美一区二区三区| 成人444kkkk在线观看| 福利二区91精品bt7086| 免费97视频在线精品国自产拍| 久久人人爽人人爽人人片亚洲| 成人淫片在线看| 国产亚洲欧洲高清| 欧美极度另类性三渗透| 日韩av最新在线观看| 国产日韩在线精品av| 这里只有精品视频在线| 国产69久久精品成人看| 亚洲国产古装精品网站| 亚洲欧美国产va在线影院| 欧美成人午夜剧场免费观看| 97精品国产97久久久久久| 日韩美女免费线视频| 国产综合视频在线观看| 92看片淫黄大片欧美看国产片| 精品亚洲一区二区三区在线播放| 欧美精品福利视频| 最近2019年好看中文字幕视频| 精品国产一区二区三区久久狼黑人| 51精品在线观看| 国产精品pans私拍| 俺去啦;欧美日韩| 亚洲在线观看视频| 成人免费午夜电影| 久久久久国产精品免费网站| 最近中文字幕2019免费| 综合国产在线视频| 欧美第一页在线| 在线视频日韩精品| 亚洲白虎美女被爆操| 亚洲美女av网站| 91在线直播亚洲| 色老头一区二区三区在线观看| 中文字幕亚洲一区二区三区五十路| 国产日韩欧美91| 欧美激情视频给我| 亚洲毛片在线观看| 亚洲国产精品久久精品怡红院| 91高清视频免费观看| 91免费福利视频| 国色天香2019中文字幕在线观看| 国自在线精品视频| 精品国产一区二区在线| 日韩天堂在线视频| 日本精品一区二区三区在线| 日本午夜人人精品| 欧美亚洲在线观看| 国产亚洲欧洲高清| 日韩va亚洲va欧洲va国产| 精品偷拍一区二区三区在线看| 亚洲欧美激情一区| 国产va免费精品高清在线观看| 国产精品 欧美在线| 国产精品视频内| 久久久人成影片一区二区三区观看| 在线观看久久av| 亚洲男人的天堂在线播放| 日韩在线www| 国产精品扒开腿做爽爽爽视频| 91伊人影院在线播放| 亚洲欧美激情在线视频| 日本人成精品视频在线|