我对以下使用参数作为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
因为我们可以得到java.lang.reflect.Field
对象。
Array
只是一个辅助类 - 请注意它上面的所有方法都是静态的。我不希望有它的实例。要接受数组 - 以及任何数组,包括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]);
}
?现在很清楚你的意图了...