How to create array of generic type? How does generic Arrays.copyOf() method work? It returns a copy of generic array. So it is possible to create generic arrays. But how? How one can write a method similar to copyOf()?
-
1Why not just look at the source code of Arrays.copyOf()?Philipp Reichart– Philipp Reichart2012-06-23 22:50:06 +00:00Commented Jun 23, 2012 at 22:50
-
1See also this question: stackoverflow.com/questions/529085/…DNA– DNA2012-07-09 22:34:07 +00:00Commented Jul 9, 2012 at 22:34
2 Answers
If you need to create it at runtime you need at least know the type at that very moment, so you could use the following approach:
a = (T[]) Array.newInstance(c,s);
where T is the generic type, c is the class of T and s is the initial size.
Documentation here
Comments
I am confused about what you're asking, but I'll try my best to answer.
If you want to create an array of generic type, the class containing the array will have to be parametrized with a generic. For example, this works:
class MyClass<T> {
T[] myGenericArray;
}
In most cases, I bet what you are doing can be achieved by an Object[] or something of that nature, although if you make your question more specific I may be able to offer more help.