在Arrays
类public static <T> T[] copyOfRange(T[] original, int from, int to)
的以下静态实用程序方法中。它是如何创建类型为T[]
的数组的,因为在java中我们无法创建泛型数组,因为它会导致泛型数组创建错误。它只是创建一个Object[]
类型的数组,对T[]
进行未经检查的强制转换,然后返回结果吗?
答案 0 :(得分:1)
您可以使用方法java.lang.reflect.Array.newInstance()
copyOfRange
可以通过执行类似original.getClass().getComponentType()
之类的操作,从传入的数组对象中获取组件类型。 (.getClass()
获取表示实际数组类型的Class
对象,表示数组类型的.getComponentType
对象上的调用Class
获取表示其的Class
对象组件类型。)