簡體   English   中英

從數組實例調用 get(數組靜態方法)

[英]Calling get (array static method) from an array instance

Java 和 OOP 的新手。 我正在做一個在線 Lynda 課程,課程中有一個使用Array.get從數組中提取第二項的示例:

String[] myFavoriteCandyBars = {"Twix", "Hershey's", "Crunch"};
System.out.println(Array.get(myFavoriteCandyBars, 2));

講師解釋說 get 是來自“Array”類的靜態方法。

但是當我嘗試定義時:

 `Array[] testarray = new Array[10];`

並使用:

 `testarray.get(testarray[10]);`

我收到一個錯誤: cannot resolve method 'get(java.lang.reflect.Array)'

但我不明白為什么 - testarray是類 Array 的對象,而類 Array 有一個方法“get”,所以雖然這是不好的做法,但為什么我不能這樣做?

Array類是一個內部 Java 類,僅包含公共靜態方法,其預期用途是不能直接實例化。 以下代碼:

testarray.get(testarray[10]);

失敗,因為testarrayArray[]類型,而不是Array ,因此沒有可用的靜態方法get() 假設說,如果您可以在實例上調用Array#get ,它應該可以工作,但是如上所述,無法實例化Array

使用Array一種更典型的方法是:

String[] testarray = new String[10];
testarray[1] = "Snickers";
System.out.println(Array.get(testarray, 1));

也就是說,創建一個所需類型的數組,然后使用Array#get訪問您想要的任何元素。

get()不是數組類中的方法(如在 byte[] 對象中)。 get()Array類中。 Array.get(testarray, 0)就是你想要的。 盡管如此,不要這樣做,而是使用testarray[0]

每當你使用靜態方法時,你不應該從對象調用它,你應該使用類實例,而不是這樣做

Object o = new Object();
o.staticMethod();

做:

Object.staticMethod();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM