国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java反射技術(shù)與類(lèi)使用示例

java反射技術(shù)與類(lèi)使用示例

2019-11-18 14:44Java教程網(wǎng) JAVA教程

這篇文章主要介紹了java反射技術(shù)與類(lèi)使用示例,需要的朋友可以參考下

代碼如下:

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 = {};
 /**
  * 每次用完之后設(shè)為空 不然會(huì)累加
  */
 public void setNullToArrays(){
  this.cl = new Class[]{};
  this.ob = new Object[]{};
 }
 /**
  * copy Object數(shù)組
  * 
  * @param obj
  *            構(gòu)造方法里需要的實(shí)際值
  * @return
  */
 public Object[] getObjectArrays(Object obj) {
   ob = Arrays.copyOf(ob,ob.length + 1);
   ob[ob.length - 1] = obj;
   return ob;
 }

 /**
  * copy Class 數(shù)組
  * 
  * @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;
  }
 }

 /**
  * 得到類(lèi)的實(shí)例
  * 
  * @param clazz
  *            要實(shí)例化的類(lèi)
  * @return 實(shí)例化之后的類(lèi)
  * @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();// 得到構(gòu)造函數(shù)
  Class[] cla = cons[1].getParameterTypes();
     System.out.println("提示用戶(hù)是否需要添加字段   構(gòu)造函數(shù)參數(shù)的大小:"+cla.length);
  for (int i = 0; i < cla.length; i++) {
   String classStr = cla[i].toString();
   // System.out.println("參數(shù)的類(lèi)型:"+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();//返回當(dāng)前對(duì)象 具體的實(shí)例化構(gòu)造在BDOperater
  return oj;
 }
 /**
  * 通過(guò)構(gòu)造函數(shù)得到具體的實(shí)例類(lèi)
  * @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;
 }
 /**
  * 得到對(duì)象的實(shí)例
  * @param clazz
  * @return
  * @throws InstantiationException
  * @throws IllegalAccessException
  */
 public Object getNewinstance(Class clazz) throws InstantiationException, IllegalAccessException{
  Object obj = null;
  obj =  clazz.newInstance();
  return obj;
 }
 /**
  * 根據(jù)反射得到類(lèi)中的所有屬性
  * @param clazz 需要被獲取屬性的類(lèi)
  * @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;
 }
    /**
     * 根據(jù)字符串得到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;
 }
 /**
  * 得到類(lèi)中的方法
  * @param clazz 需要的得到方法的類(lèi)
  * @return
  */
 public Method[] getMethodsArray(Class clazz){
  Method[] methods = clazz.getMethods();
  return methods;
 }
 /**
  * 根據(jù)list<map>實(shí)例化構(gòu)造函數(shù)
  * @param listMap 
  * @param clazz
  * @param tableName 數(shù)據(jù)庫(kù)名稱(chēng)
  * @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("調(diào)用反射:"+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"));
 }
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精彩 | 一级特黄| 久久香蕉综合 | 久热中文字幕 | 久久大伊人| 一级黄色a毛片 | 午夜影院啊啊啊 | 日韩爱爱免费视频 | 日韩欧美视频免费 | 日本一区二区免费在线观看 | 日韩一区二区三区在线看 | 九九亚洲精品 | 欧美日韩亚洲高清 | 精品国产乱码久久久久久闺蜜 | 欧美黑人一级爽快片淫片高清 | 一特黄a大片免费视频 视频 | 欧美日韩成人 | 日韩久久久| 成人在线一区二区 | 天天操天天干视频 | 国产四区| 天堂俺去俺来也www久久婷婷 | 国产日韩精品视频 | 在线观看中文字幕亚洲 | 久久懂色精品99综一区合 | 亚洲国产精品一区二区三区 | 黄色av网站在线观看 | 午夜免费剧场 | 精品一区二区精品 | 成人久久久久久 | 精品国产久| 欧美成视频| 国产成人在线一区二区 | 久久久久久久久久久国产 | 婷婷久久综合九色综合绿巨人 | 99久久国产免费 | 久久久天堂 | aa一级毛片 | 日韩a∨精品日韩在线观看 国产高清视频在线观看 | 国产欧美日韩综合精品一区二区 | 日韩一区二区免费电影 |