Restituisce il tipo di metodi generici Java

Mi chiedo perché i metodi generici che non restituiscono nulla siano (o possano essere) dichiarati in questo modo:

  public static  void printArray( E[] inputArray ) { // Display array elements for ( E element : inputArray ){ System.out.printf( "%s ", element ); } System.out.println(); } 

Sembra che sia il tipo dell’object restituito, ma il metodo non restituisce nulla di fatto. Quindi qual è il vero significato di in questo caso in particolare e in generale in generale?

Questa domanda si adatta a uno dei miei vecchi appunti. Spero che questa illustrazione aiuti:

inserisci la descrizione dell'immagine quiinserisci la descrizione dell'immagine qui

è la dichiarazione generica dei parametri di tipo. Significa “questo metodo ha un singolo parametro di tipo, chiamato E , che può essere di qualsiasi tipo”.

Non è il tipo di ritorno, che viene dopo la dichiarazione del parametro type, appena prima del nome del metodo. Quindi il tipo di printArray metodo printArray nella tua domanda è ancora void .

Vedere la sezione 8.4 del JLS per ulteriori dettagli sulle dichiarazioni dei metodi.

Non è il tipo dell’object restituito. Indica che E , nella firma del metodo, è un tipo generico e non un tipo concreto. Senza di esso, il compilatore cercherebbe una class chiamata E per l’argomento del metodo.

è chiamato parametro di tipo formale. Non è il tipo di ritorno del metodo. In pratica dice che il metodo può accettare come array di parametri di tipi diversi (E [] inputArray).

E viene utilizzato come segnaposto per il tipo effettivo che verrà passato alla funzione Gen quando questa funzione chiamerà.

supponiamo che E possa essere sostituito dal numero intero