2

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()?

2

2 Answers 2

6

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

Sign up to request clarification or add additional context in comments.

Comments

-3

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.

2 Comments

"this works" No, it doesn't. Read up on generics, type erasure and arrays in Java.
@missingfaktor: There is nothing wrong with the declaration given. It just does not answer the question (how to actually create an array).

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.