Missing return statement: il compilatore non è riuscito a trovare l'istruzione return per un metodo con tipo di ritorno.
Questo è dovuto alla "non corretta" implementazione del metodo.
Quando hai a che fare con metodi che ritornano qualcosa è bene adottare un paradigma di programmazione più ferreo:
Questi due codici, ad esempio, sono esattamente equivalenti:
Codice 1:
Codice 2:codice:public int metodo() { if ( condizione ) { return 10; } else { return 20; } }
Ma il secondo, oltre ad essere più stilisticamente bello, più manutenibile e più filosoficamente corretto, è anche sintatticamente più gradito dal compilatore.codice:public int metodo() { int risultato = -1; if ( condizione ) { risultato = 10; } else { risultato = 20; } return risultato; }
Questo perchè il compilatore non può sapere a priori che uno dei due rami del costrutto IF verrà sicuramente eseguito e non è in grado, quindi, di essere sicuro che venga eseguita una delle due istruzioni return (evidentemente, questo comporterebbe un overhead da parte del compilatore, che ne peggiorerebbe le performances).
Consiglio spassionato: usa sempre la seconda forma, e avrai meno problemi a gestire codici complessi (ricorda che una funzione, anche in matematica, è una regola che associa ad uno o più valori, uno ed un solo valore. Quindi in una funzione ci deve essere sempre uno ed un solo return).
Ciao.![]()



Rispondi quotando