zoukankan      html  css  js  c++  java
  • 使用数组

    本文介绍的 reflection 的最后一种用法是创建的操作数组。数组在 Java 语言中是一种特殊的类类型,一个数组的引用可以赋给 Object引用。观察下面的例子看看数组是怎么工作的:

    import java.lang.reflect.*;   
    
    public class array1 {
    
        public static void main(String args[]) {
    
            try {
    
                Class cls = Class.forName("java.lang.String");
    
                Object arr = Array.newInstance(cls, 10);
    
                Array.set(arr, 5, "this is a test");
    
                String s = (String) Array.get(arr, 5);
    
                System.out.println(s);
    
            } catch (Throwable e) {
    
                System.err.println(e);
    
            }
    
        }
    
    }
    

    例中创建了 10 个单位长度的 String 数组,为第 5 个位置的字符串赋了值,最后将这个字符串从数组中取得并打印了出来。

    下面这段代码提供了一个更复杂的例子:

    
    import java.lang.reflect.*;  
    
    public class array2 {
    
        public static void main(String args[]) {
    
            int dims[] = new int[]{5, 10, 15};
    
            Object arr = Array.newInstance(Integer.TYPE, dims);
    
            Object arrobj = Array.get(arr, 3);
    
            Class cls = arrobj.getClass().getComponentType();
    
            System.out.println(cls);
    
            arrobj = Array.get(arrobj, 5);
    
            Array.setInt(arrobj, 10, 37);
    
            int arrcast[][][] = (int[][][]) arr;
    
            System.out.println(arrcast[3][5][10]);
    
        }
    
    }
    

    例中创建了一个 5 x 10 x 15 的整型数组,并为处于 [3][5][10] 的元素赋了值为 37。注意,多维数组实际上就是数组的数组,例如,第一个 Array.get 之后,arrobj 是一个 10 x 15 的数组。进而取得其中的一个元素,即长度为 15 的数组,并使用 Array.setInt 为它的第10个元素赋值。

    注意创建数组时的类型是动态的,在编译时并不知道其类型。

  • 相关阅读:
    我的python中级班学习之路(全程笔记第一模块) (第一章)语言基础
    Python_常用模块
    Python_装饰器、迭代器、生成器
    Python_函数
    Python_深浅拷贝
    Python_文件操作
    Python_三级目录
    Python_循环判断表达式
    Python_基础语法
    7段数码管绘制
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9733894.html
Copyright © 2011-2022 走看看