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;
}
其實,也只是幾個簡單的方法,不難。當然是在知道這些方法的前提下不
難。但也正是這一個個簡單的東西的累加,形成了差距。要走的路還長……
數組的擴展
寫一個方法返回一個長度是輸入的數組長度的兩倍的數組,內容要複製,要求輸入和輸出的參數都是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;
}
其實,也只是幾個簡單的方法,不難。當然是在知道這些方法的前提下不
難。但也正是這一個個簡單的東西的累加,形成了差距。要走的路還長……
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.