我们可以调用一个参数为java.lang.reflect.Array的方法吗?

时间:2015-06-17 13:24:05

标签: java reflection

我怀疑下面的代码使用参数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个对象。

1 个答案:

答案 0 :(得分:2)

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]);
}

?现在它清楚你想要什么...