zoukankan      html  css  js  c++  java
  • 【转载】Java反射: 数组

    原创链接:http://czj4451.iteye.com/blog/1479486

    java.lang.reflect.Array 

       Java反射机制通过Array类来处理数组,结合java.lang.Class类,可以在运行时获取数组的相关信息。要和集合包中的java.util.Arrays区分开,Arrays类是一个数组工具类(排序、遍历数组,将数组转换为集合等)。 

    实例化数组 

    如果在编译时知道数组的类型(如int类型),使用new关键字实例化 

    Java代码  收藏代码
    1. float[] array = new float[3];  



    也可以使用反射: 

    Java代码  收藏代码
    1. float[] array = Array.newInstance(float.class, 3);  


    和new关键字类似,这个例子也创建了一个float类型的数组。 

    如果是运行时才知道类型,使用下面的方法: 

    Java代码  收藏代码
    1. Object array = Array.newInstance(componentType, length);  


    Array.newInstance()的第一个参数表示要创建什么类型的数组,第二个参数表示数组的大小。 

    访问数组 

    创建数组后,可以通过Array.set()和Array.get()来设置和获取数组中的元素: 

    Java代码  收藏代码
    1. float[] array = (float[]) Array.newInstance(float.class, 3);  
    2. Array.set(array, 0, 16.0f);  
    3. Array.set(array, 1, 12.4f);  
    4. Array.set(array, 2, 16.4f);  
    5.   
    6. System.out.format("array[0]=%f ", Array.get(array, 0));  
    7. System.out.format("array[1]=%f ", Array.get(array, 1));  
    8. System.out.format("array[2]=%f ", Array.get(array, 2));  


    输出: 
    array[0]=16.000000 
    array[1]=12.400000 
    array[2]=16.400000 

    判断传入的对象是不是数组 

    Java代码  收藏代码
    1. // obj is the instance passed in running time  
    2. boolean bArray = obj.getClass().isArray();  



    拿到数组的长度 

    Java代码  收藏代码
    1. // obj is the instance passed in running time  
    2. int length = java.lang.reflect.Array.getLength(obj);  



    判断数组元素的类型 

    Java代码  收藏代码
      1. // obj is the instance passed in running time  
      2. Class elementType = obj.getClass().getComponentType();  
  • 相关阅读:
    股票交易接口
    股票自动买卖
    安信证券接口的demo做得不好。
    MEF bug? 无法加载外部的DLL
    如何移植行情软件的指标到千发股票自动交易软件?
    股票策略交易
    博客园自动关注病毒 只活了一小会儿。
    Float 运算的怪异性
    文件大小和占用空间为何不一样
    做最好的自己
  • 原文地址:https://www.cnblogs.com/LemonTing/p/5238492.html
Copyright © 2011-2022 走看看