fork download
  1. import java.lang.reflect.Array;
  2. import java.lang.*;
  3.  
  4. class Ideone {
  5. static <T> T[] getGenericArray(T... a) {
  6. return a;
  7. }
  8.  
  9. static <T> void genericArrayFailure(T... a) {
  10. Object[] objectArray = a;
  11. objectArray[0] = 1;
  12. T t = a[0];
  13. }
  14.  
  15. static <T> T[] getGenericArrayReflexionAPI(T a, T b, T c) {
  16. T[] array = (T[]) Array.newInstance(a.getClass(), 3);
  17. array[0] = a;
  18. array[1] = b;
  19. array[2] = c;
  20. return array;
  21. }
  22.  
  23. public static void main (String[] args) throws java.lang.Exception
  24. {
  25. String[] stringArray = getGenericArray("1", "2", "3");
  26. // class [Ljava.lang.String;
  27. System.out.println(stringArray.getClass());
  28.  
  29. stringArray = getGenericArrayReflexionAPI("1", "2", "3");
  30. // class [Ljava.lang.String;
  31. System.out.println(stringArray.getClass());
  32.  
  33. // Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer
  34. genericArrayFailure("1", "2", "3");
  35. }
  36. }
Runtime error #stdin #stdout #stderr 0.09s 32792KB
stdin
Standard input is empty
stdout
class [Ljava.lang.String;
class [Ljava.lang.String;
stderr
Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer
	at Ideone.genericArrayFailure(Main.java:11)
	at Ideone.main(Main.java:34)