You can’t create arrays with a generic component type.
Create an array of an explicit type, like
Object, instead. You can then cast this to
PCB if you want, but I don’t recommend it in most cases.
PCB res = (PCB) new Object[list.size()]; /* Not type-safe. */
If you want type safety, use a collection like
java.util.List<PCB> instead of an array.
By the way, if
list is already a
java.util.List, you should use one of its
toArray() methods, instead of duplicating them in your code. This doesn’t get your around the type-safety problem though.