反射和序列化生成對象效率比對

目前結果是反射更快。下面看代碼

反射:

package com.self.test;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.self.common.ResourceType;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ReflectTest {
  private final static String ClassName = "com.self.entity.";

  public static void main(String[] args) {
    String resoucesInfo = "[{\"resourceType\":\"VPN\",\"name\":\"1\",\"age\":\"2\"},{\"resourceType\":\"VPN\",\"name\":\"11\",\"age\":\"22\"},{\"resourceType\":\"HOST\",\"name\":\"1111\",\"age\":\"2222\"},{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + "]";


    long listStartTime = System.currentTimeMillis();
    JSONArray jsonArray = JSON.parseArray(resoucesInfo);
    int size = jsonArray.size();
    System.out.println(size);
    for (int i = 0; i < size; i++) {
      JSONObject jsonObject = jsonArray.getJSONObject(i);
      Object o = getObjectByJSONObject(jsonObject,jsonObject.getString("resourceType"));
    }
    long listEndTime = System.currentTimeMillis();
    System.out.println("list全部存入時間爲" + (listEndTime-listStartTime));
  }

  public static Object getObjectByJSONObject(JSONObject jsonObject,String resourceType){
    Class resourceClass = null;
    Object instance = null;

    String realName = ClassName + resourceType;
    try {
      resourceClass = Class.forName(realName);
    } catch (ClassNotFoundException e) {
      System.out.println("類初始化失敗->ClassNotFoundException: " + e.getStackTrace());
    }
    try {
      instance = resourceClass.newInstance();
      // 實例化對象之後賦值
      String resourcePropertuies = ResourceType.getResourcePropertiesByType(resourceType);
      instance = setResourceProperties(instance,resourcePropertuies,jsonObject);
    } catch (InstantiationException e) {
      System.out.println("對象實例化失敗->InstantiationException: " + e.getStackTrace());
    } catch (IllegalAccessException e) {
      System.out.println("對象實例化失敗->IllegalAccessException: " + e.getStackTrace());
    } catch (NoSuchFieldException e) {
      System.out.println("對象配置參數失敗->NoSuchFieldException: " + e.getStackTrace());
    }
    return instance;
  }

  /**
   * @Author shen_jian
   * @Description // 設置對象屬性
   * @Date 17:36 2019/5/28 0028
   * @Param [o: 對象, properties: 屬性列表, jsonObject: 屬性值]
   * @return java.lang.Object
   **/
  private static Object setResourceProperties(Object o,String properties,JSONObject jsonObject) throws NoSuchFieldException, IllegalAccessException {
    String[] propertyList = properties.split(",");
    Class clazz = o.getClass();
    for (String property: propertyList) {
      Field field = clazz.getDeclaredField(property);
      field.setAccessible(true);
      // 根據數組裏的property作爲key獲取jsonObject的值,不爲空則設置
//      if (!"resourceType".equals(property)){
        field.set(o, null == jsonObject.getString(property) ? "" : jsonObject.getString(property));
//      }
    }
    return o;
  }









  /*public static void main(String[] args) {
    try {
      Class class2 = Class.forName("com.self.entity.Person");
      // 獲取到所有本身的方法名
      Method[] methods = class2.getDeclaredMethods();
      for (Method method : methods) {
        System.out.println(method.getName());
      }
      // 獲取指定method
      Method method = class2.getDeclaredMethod("setSex", String.class);
      Class[] cls = method.getParameterTypes();
      if (cls.length != 0) {
        for (int j = 0; j < cls.length; j++) {
          System.out.println(" 方法的參數:" + cls[j].getName());
        }
      } else {
        System.out.println(" ***該方法無參數");
      }
      // 創建對象
      Object o = class2.newInstance();
      method.invoke(o,"hehe");
      System.out.println(o);
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    } catch (IllegalAccessException e) {
      e.printStackTrace();
    } catch (InstantiationException e) {
      e.printStackTrace();
    } catch (NoSuchMethodException e) {
      e.printStackTrace();
    } catch (InvocationTargetException e) {
      e.printStackTrace();
    }
  }*/
}

運行結果:

序列化:

package com.self.test;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.io.*;

/**
 * @ClassName:SerializableTest
 * @description: TODO
 * @author: shen_jian
 * @date: 2019-06-03 10:47
 **/
public class SerializableTest {
  public static void main(String[] args) {
    String resoucesInfo = "[{\"resourceType\":\"VPN\",\"name\":\"1\",\"age\":\"2\"},{\"resourceType\":\"VPN\",\"name\":\"11\",\"age\":\"22\"},{\"resourceType\":\"HOST\",\"name\":\"1111\",\"age\":\"2222\"},{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + ",{\"resourceType\":\"HOST\",\"name\":\"111\",\"age\":\"222\",\"p1\":\"1\",\"p2\":\"2\",\"p3\":\"3\",\"p4\":\"4\",\"p5\":\"5\",\"p6\":\"6\"}"
        + "]";


    long listStartTime = System.currentTimeMillis();
    JSONArray jsonArray = JSON.parseArray(resoucesInfo);
    int size = jsonArray.size();
    System.out.println(size);
    for (int i = 0; i < size; i++) {
      JSONObject jsonObject = jsonArray.getJSONObject(i);
      Object o = getObjectBySerializable(jsonObject);
    }
    long listEndTime = System.currentTimeMillis();
    System.out.println("list全部存入時間爲" + (listEndTime-listStartTime));
  }

  // 序列化
  public static Object getObjectBySerializable(JSONObject jsonObject){
    ByteArrayInputStream byteArrayInputStream = null;
    Object object = null;
    try {
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      ObjectOutputStream oos = new ObjectOutputStream(baos);
      oos.writeObject(jsonObject);
      byte[] str = baos.toByteArray();

      byteArrayInputStream = new ByteArrayInputStream(str);
      ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
      object = objectInputStream.readObject();
      objectInputStream.close();
      byteArrayInputStream.close();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
    return object;
  }
}

運行結果:

運行了許多次,反射的效率要比序列化快很多。而且我已經將屬性字段增加到了8個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章