Ho bisogno di sapere quali array multidimensionali di classe in Java si estendono esattamente?Gli array multidimensionali in Java ampliano quale classe?
Quando si assegna
Object[] ref=new int[]{1,2,3};
il compilatore si lamenta che gli oggetti sono di diversi tipi. Quindi sembra che gli array monodimensionali si estendano a Object
; Lo so già.
Ma quando assegniamo
Object[] ref2=new int[][]{{1,2,3},{4,5,6}};
il compilatore non si lamenterà. Quindi sembra che gli array bidimensionali si estendano Object[]
.
Ma quando stampo il suo nome superclasse:
System.out.println(ref2.getClass().getSuperclass().getName());
ho ottenuto java.lang.Object
.
Quindi qualcuno può spiegare cosa sta succedendo qui?
Meglio formulata che la mia risposta. +1 –
@mmyers: +1 per rimuovere la tua risposta in favore di upvoting di quello che pensavi fosse migliore (o buono e prima). Vorrei che più di noi l'avessero fatto! –
Se continuiamo int [] [] [] è un oggetto [] [], quindi è una caratteristica gentile nel linguaggio java e non esiste una gerarchia di classi per questi array. – skystar7