Salve a tutti, ho un breve quesito di ottimizzazione del codice java.

Allora, per esempio abbiamo questa situazione

codice:
public List<Object> getFoo() {
    // do something
   return aList;

}

// Soluzione 1
public void goo() {

    if(getFoo() != null && !getFoo().isEmpty() ) {
       list = getFoo();
       // work with list
     }
}

// Soluzione 2
public void goo2() {

 List<Object> list = getFoo();

  if( list != null && !list.isEmpty()) {
     // work with list
   }

Secondo voi, ragionando esclusivamente a livello di creazione del ByteCode e delle performance, qual è la soluzione migliore? oppure ce n'è una terza?

Ciao a tutti