奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語言

java使用反射技術示例

時間:2025-04-26 06:34:23 java語言 我要投稿
  • 相關推薦

java使用反射技術示例

  復制代碼 代碼如下:

  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{

  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

  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

  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

  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(Classclazz) 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實例化構造函數

  * @param listMap

  * @param clazz

  * @param tableName 數據庫名稱

  * @return

  * @throws NoSuchMethodException

  * @throws InvocationTargetException

  * @throws SecurityException

  * @throws IllegalArgumentException

  * @throws IllegalAccessException

  * @throws InstantiationException

  */

  @SuppressWarnings({ "unchecked" })

  public ListgetListByMap(List<Map> listMap,Class clazz,String tableName) throws InstantiationException, IllegalAccessException, IllegalArgumentException, SecurityException, InvocationTargetException, NoSuchMethodException{

  ListlistLast = new ArrayList();

  ListmetaList = GetMetaDataCloumName.getCloumNameList(tableName);

  Iterator<Map> it = listMap.iterator();

  while(it.hasNext()){

  Mapmap = it.next();

  Iteratoriitt = 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"));

  }

  }

【java使用反射技術示例】相關文章:

java system類使用方法示例05-03

Java反射機制07-02

java中反射機制05-26

關于Java 反射的簡介05-12

Java反射機制學習總結05-19

深入理解java的反射07-16

Java反射機制應用實踐05-31

java運行異常示例02-07

Java編程學習示例07-31

主站蜘蛛池模板: 麟游县| 瑞安市| 荣成市| 高陵县| 雅安市| 普洱| 蒙阴县| 罗平县| 盖州市| 林州市| 金塔县| 泸州市| 湟源县| 原平市| 屏南县| 许昌县| 正安县| 吴旗县| 娄烦县| 阿拉善左旗| 长白| 静乐县| 航空| 故城县| 富锦市| 固镇县| 潜山县| 靖宇县| 锡林郭勒盟| 获嘉县| 浙江省| 湾仔区| 宜君县| 监利县| 石台县| 调兵山市| 江山市| 兰西县| 文水县| 营口市| 亚东县|