我们可以调用参数为 java.lang.reflect.Array 的方法吗?
can we call a method having argument as java.lang.reflect.Array?
我对下面使用参数作为 java.lang.reflect.Array
.
的代码有疑问
public static void display(java.lang.reflect.Array stringArray) {
System.out.println(java.lang.reflect.Array.get(stringArray, 1));
}
上面提到的代码将成功编译,但我是否应该编写此方法以及可能的用例是什么?
如果我能写这样的方法,我们怎么能调用这个方法呢we can not instantiate java.lang.reflect.Array
而且我们也不能从Class
class引用中得到对象,因为我们可以得到java.lang.reflect.Field
目的。
Array
只是一个助手 class - 请注意 所有 上的方法都是静态的。我不希望有这样的例子。要接受数组 - 和 any 数组,包括 int[]
等 - 你需要让方法接受 Object
:
public static void display(Object stringArray) {
System.out.println(java.lang.reflect.Array.get(stringArray, 1));
}
此时,你可以传递一个String[]
作为参数,它会打印出第二个元素。
但是,如果您想要只接受字符串数组,为什么不写:
public static void display(String[] stringArray) {
System.out.println(stringArray[1]);
}
?现在很清楚你的意图...
我对下面使用参数作为 java.lang.reflect.Array
.
public static void display(java.lang.reflect.Array stringArray) {
System.out.println(java.lang.reflect.Array.get(stringArray, 1));
}
上面提到的代码将成功编译,但我是否应该编写此方法以及可能的用例是什么?
如果我能写这样的方法,我们怎么能调用这个方法呢we can not instantiate java.lang.reflect.Array
而且我们也不能从Class
class引用中得到对象,因为我们可以得到java.lang.reflect.Field
目的。
Array
只是一个助手 class - 请注意 所有 上的方法都是静态的。我不希望有这样的例子。要接受数组 - 和 any 数组,包括 int[]
等 - 你需要让方法接受 Object
:
public static void display(Object stringArray) {
System.out.println(java.lang.reflect.Array.get(stringArray, 1));
}
此时,你可以传递一个String[]
作为参数,它会打印出第二个元素。
但是,如果您想要只接受字符串数组,为什么不写:
public static void display(String[] stringArray) {
System.out.println(stringArray[1]);
}
?现在很清楚你的意图...