, , , . genericMethod() , :
public static Object[] genericMethod(List input) {
Object[] res = new Object[input.size()];
int i = 0;
for (Object t : input) {
res[i] = t;
i++;
}
return res;
}
, Object. Object[] Integer[], . , , Array.newInstance(). :
public static <T> T[] genericMethod(Class<T> clazz, List<T> input) {
@SuppressWarnings("unchecked")
T[] res = (T[]) Array.newInstance(clazz, input.size());
int i = 0;
for (T t : input) {
res[i] = t;
i++;
}
return res;
}
:
LinkedList<Integer> list = new LinkedList<Integer>();
Integer[] i = genericMethod(Integer.class, list);
Update:
, genericMethod2(), :
public static Object genericMethod2(List input) {
return input.get(0);
}
, Object. :
Integer j = genericMethod2(list);
genericMethod2() Integer:
Integer j = (Integer)genericMethod2(list);
, Integer Object, , , , Integer. , .