java反射(tutorial翻譯)Part3

課程:數組

Array類提供了一種方法,這種方法允許你動態創建和訪問數組。這一節課你將要學到如何使用這些方法。

指定數組

這一節向您展示如何處理當對象是一個數組的時候。

如果你不確定一個特定的對象是一個數組,你可以通過Class.isArray方法麳檢查以下。嚷我們麳看一個例子。

這個示例程序打印數組的名字,這個數組被封裝成一個對象。這個程序執行以下幾步:

1.  它返回Class對象。

2.  獲得Field對象。

3.  對每一個Field對象,程序獲得相應的Class對象通過調用getType方法。

4.  驗證前面步驟返回的Class對象是數組,這個程序調用isArray方法。

以下是源代碼:

 

 

 

 

 

輸出如下:

返回組件類型

如果你想發現數組的類型,你將要從這一節的示例中學到。

組件類型是數組元素的類型。例如,arrowKeys數組的組件類型在以下代碼中是Button類型:

通過調用getComponentType方法返回數組元素的組件類型。

示例程序調用getComponentType方法幷且打印出數組中每一個元素的類名。

 

 

 

 

輸出:

創建數組

這一節將要向您展示在運行時創建數組是多麽的簡單。

如果你正在編寫一個例如應用程序構建器的開發工具,你可能想要允許用戶在運行時創建數組。你的程序可以通過Array.newInstance方法提供這個特性。

以下示例程序使用newInstance方法麳創建一個數組的拷貝,這個數組大小是原來數組的兩倍。newInstance方法接受新數組的長度和組件類型。以下是源代碼:

 

 

 

輸出:

你也可以使用newInstance方法麳創建多維數組。在這個情况下,方法的參數是新數組維數的組件類型和int類型的數組。

以下程序展示如何使用newInstance麳創建多維數組:

 

 

 

 

 

 

 

 

獲得和設置元素的值

即使你直到運行時才直到數組名字,你也可以檢查或者修改它元素的值。這一節將要告訴你如何來做。

在許多程序中,訪問數組元素你只是通過賦值表達式麳做:

如果你在運行時才直到數組的名稱的時候這種方式是不可行的。

幸運的是,你可以使用Array類的setget方法麳訪問數組元素,當在編譯時刻不知道數組名的時候。除了getset方法,Array類對于原始類型有特定的方法。例如,setInt的參數值是一個intgetBoolean返回的對象是一個boolean類型的包裝類。

示例程序使用setget方法麳拷貝一個數組的內容到另一個數組。

 

 

 

輸出:

转载于:https://www.cnblogs.com/tongzhiyong/archive/2007/02/21/653249.html

你可能感兴趣的:(java反射(tutorial翻譯)Part3)