Perché questo metodo Java sembra avere due tipi di ritorno?

public  List getResult(String s); 

dove Foo è la mia class.

Qual è il tipo di ritorno di questo metodo? Perché sembra che abbiano due tipi di ritorno?

No, non hai due tipi di ritorno. È un metodo generico che stai vedendo.

   --> you are declaring a generic type for your method List --> this is your return type 

Il tuo metodo può avere un tipo generico E che è una sottoclass di Foo . il tuo tipo di List è un List

Il tipo di ritorno è List . La clausola non è un tipo di ritorno; è una dichiarazione di tipo generico, che specifica che il particolare tipo E deve essere un Foo (o una sottoclass di Foo ). Questa è la syntax standard per la dichiarazione di un metodo generico.

Dai un’occhiata alla documentazione di Java relativa ai generici.

  // declares the bounds for the generic type `E` List // declares the return value 

Il tipo di ritorno del metodo è List .