从数组实例调用 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" class 的静态方法。
但是当我尝试定义时:
`Array[] testarray = new Array[10];`
并使用:
`testarray.get(testarray[10]);`
我得到一个错误:
cannot resolve method 'get(java.lang.reflect.Array)'
但我不明白为什么 - testarray
是 class 数组的对象,而 class 数组有一个方法 "get",所以虽然不好练习,为什么我做不到?
get()
不是数组 class 中的方法(如在 byte[] 对象中)。 get()
在 Array
class 中。做 Array.get(testarray, 0)
就是你想要的。尽管如此,不要这样做,而是 testarray[0]
。
每当你使用静态方法时,你不应该从对象中调用它,你应该使用 class 实例,而不是做
Object o = new Object();
o.staticMethod();
做:
Object.staticMethod();
Array
class 是内部 Java class 仅包含 public 静态方法,其预期用途是不直接实例化.以下代码:
testarray.get(testarray[10]);
失败,因为 testarray
是 Array[]
类型,而不是 Array
类型,因此没有可用的静态方法 get()
。假设地说,如果您可以在一个实例上调用 Array#get
,它应该可以工作,但是如上所述,Array
无法实例化。
一个更典型的使用 Array
的方法是这样的:
String[] testarray = new String[10];
testarray[1] = "Snickers";
System.out.println(Array.get(testarray, 1));
即创建一个所需类型的数组,然后使用Array#get
访问您想要的任何元素。
Java 的新手,一般来说是 OOP。
我正在上在线 Lynda 课程,课程中有一个使用 Array.get
从数组中提取第二项的示例:
String[] myFavoriteCandyBars = {"Twix", "Hershey's", "Crunch"};
System.out.println(Array.get(myFavoriteCandyBars, 2));
并且讲师解释说 get 是来自 "Array" class 的静态方法。
但是当我尝试定义时:
`Array[] testarray = new Array[10];`
并使用:
`testarray.get(testarray[10]);`
我得到一个错误:
cannot resolve method 'get(java.lang.reflect.Array)'
但我不明白为什么 - testarray
是 class 数组的对象,而 class 数组有一个方法 "get",所以虽然不好练习,为什么我做不到?
get()
不是数组 class 中的方法(如在 byte[] 对象中)。 get()
在 Array
class 中。做 Array.get(testarray, 0)
就是你想要的。尽管如此,不要这样做,而是 testarray[0]
。
每当你使用静态方法时,你不应该从对象中调用它,你应该使用 class 实例,而不是做
Object o = new Object();
o.staticMethod();
做:
Object.staticMethod();
Array
class 是内部 Java class 仅包含 public 静态方法,其预期用途是不直接实例化.以下代码:
testarray.get(testarray[10]);
失败,因为 testarray
是 Array[]
类型,而不是 Array
类型,因此没有可用的静态方法 get()
。假设地说,如果您可以在一个实例上调用 Array#get
,它应该可以工作,但是如上所述,Array
无法实例化。
一个更典型的使用 Array
的方法是这样的:
String[] testarray = new String[10];
testarray[1] = "Snickers";
System.out.println(Array.get(testarray, 1));
即创建一个所需类型的数组,然后使用Array#get
访问您想要的任何元素。