Sto provando ad avviare un'applicazione utilizzando Play Framework 2.4 con JDK8 in Mac, quando scarico la base utilizzando ./activator new Project play-java il codice del template contiene i seguenti:Play Framework 2.4 non accetta "public static Result" per i controllori
progetto/app/controlles/Application.java
package controllers;
import play.*;
import play.mvc.*;
import views.html.*;
public class Application extends Controller {
public Result index() {
return ok(index.render("Your new application is ready."));
}
}
Ma quando sostituisco questa parte:
public static Result index() {...
aggiungendo "statico" per index()
ottengo questo errore
Compilation error
value index is not a member of controllers.Application
.../conf/routes:6
4 # ~~~~
5 # Home page
6 GET / controllers.Application.index()
non so perché, perché in tutti gli esempi utilizzati statico per Risultato
Sai cosa 'static'means in un linguaggio OOP?Apparentemente il membro 'index' della classe base (il campo, non il metodo) è un membro di istanza e quindi non può essere accesso staticamente. – Kryptos
@Kryptos: cosa vuoi dire? index() non è accessibile in alcun modo qui, statico o non statico. Il motivo è che Play è passato a metodi di azione non statici dalla versione 2.4. – Kris
@Kris, stai scambiando 'index' per 'index()'. – Kryptos