Java consente questo:
class X{
int i,j[]; // j is an array, i is not
}
e ancora peggio, consente questo:
class X{
int foo(String bar)[][][] // foo actually returns int[][][]
{ return null; }
}
Ok, il motivo potrebbe essere che è stato prestato da C / C ++. Tuttavia, Java doveva essere più semplice di C / C ++. Perché gli inventori di Java hanno deciso di consentire questo costrutto difficile da leggere. I tipi complicati di C in cui il nome della variabile si trova nel mezzo del tipo sono difficili da leggere e provocano errori di programmazione.
Specialmente le parentesi dietro la firma del metodo. Non ho mai visto questi in uso e questo è per una buona ragione. Nessuno guarda dietro la firma quando controlla il tipo di ritorno di un metodo. Mentre il primo esempio può salvare alcune sequenze di tasti (poiché int
non deve essere scritto due volte), le parentesi dietro la firma non ne salvano nemmeno, quindi non vedo assolutamente alcun guadagno qui.
Quindi c'è una buona ragione per questo (specialmente il secondo) che mi manca?