提取封装在Object中的数组

ale*_*oot 1 java arrays object

假设我有一个封装在对象中的数组:

String[] strvls = { "Alessio", "Ale" };
Object container = strvls;
Run Code Online (Sandbox Code Playgroud)

我想从容器对象中提取回数组,我该怎么办?

我知道这是一个以这种方式检查的数组:

if(container.getClass().isArray()) {
    //Extract the encapsulated array - How ?
}
Run Code Online (Sandbox Code Playgroud)

我无法强制转换为String数组,因为我无法确定数组的类型是String[]......所以我需要转换为泛型类型数组,是否可以在Java中使用?

KAR*_*ván 6

你可以把它投射到Object[]数组:

String[] strvls = { "Alessio", "Ale" };
Object container = strvls;
if (container.getClass().isArray()) {
    Object[] data = (Object[]) container;
    System.out.println(data.length);
}
Run Code Online (Sandbox Code Playgroud)