reflection的應用

通過下面這個實例,可以瞭解reflection的使用。

數組的擴展

寫一個方法返回一個長度是輸入的數組長度的兩倍的數組,內容要複製,要求輸入和輸出的參數都是Object類型。
這裏可能用Java的反射(reflection)API來實現,具體點就是Array類。

    public Object expand(Object array){

        if (!array.getClass().isArray())
            return null;

        Class componentType = array.getClass().getComponentType();
        int newLength = Array.getLength(array)*2;

        Object newArray = Array.newInstance(componentType, newLength);
        System.arraycopy(array, 0, newArray, 0, Array.getLength(array));
        //System.arraycopy(array, 0, newArray, Array.getLength(array), Array.getLength(array));

        return newArray;
    }

其實,也只是幾個簡單的方法,不難。當然是在知道這些方法的前提下不
難。但也正是這一個個簡單的東西的累加,形成了差距。要走的路還長……
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章