2016-03-04 1 views
3

J'utilise IntelliJ IDEA 15.0.4 pour développer un Java Play! 2.4.4 application. Depuis quelques mois (je pense que c'était à cause d'une mise à jour IntelliJ, mais pas sûr à 100%) le problème suivant se produit:IntelliJ IDEA 15 Lecture 2.4 des paramètres de la méthode de routage inverse « chaîne ne peut pas être appliquée à java.lang.String »

Chaque fois que j'appelle une route inverse d'un contrôleur qui prend une chaîne comme paramètre, le paramètre est affiché comme une erreur avec le message suivant:

methodName (string) dans ReverseMyController ne peut pas être appliqué à (java.lang.String)

Voici un exemple de code:

public Result myAction(String myId) { 
    // Do something... 

    // Redirect back to referrer 
    flash("success", "Action was a success"); 
    if(!myId.isEmpty()) return redirect(controllers.routes.MyController.showItem(myId)); 
    return redirect(controllers.routes.MyController.itemList(1)); 
} 

Dans cet exemple, le paramètre myId passé à la méthode showItem serait une erreur en surbrillance, like this.

J'ai déjà essayé de jongler avec les paramètres de structure du projet et recherché Google, mais en vain. J'espère que quelqu'un est capable de m'aider avec ceci, mon OCD-self apprécierait vraiment avoir une base de code avec aucune allusion d'erreur;)

Répondre

3

Oui, je rencontre le même problème que ce que vous avez dit. Je pense que c'est un bug de l'IDEA 15.0.4, Avez-vous essayé de passer à l'ancienne version avant 15.0.4?

+0

Merci, je vais déposer un rapport de bogue dans ce cas. Je ne savais pas si c'était un bug ou un problème de configuration parce que personne d'autre ne semblait avoir le même problème jusqu'à maintenant. –

+0

Il y avait déjà un problème: il se https://youtrack.jetbrains.com/issue/SCL-9688 espoir résolu bientôt :) Je –

+0

télécharger IDEA 2016,1 et mettre à jour le plugin scala à 3.0.0, le message d'erreur a disparu. – deezh

4

Accepté réponse ne résout pas le problème qui est pourquoi je répondre à cette vieille question.

J'ai eu le même problème avec Jouer2.5.4 et InteliJ2016.1.3

j'ai enlevé le type (String) de la déclaration d'itinéraire dans le fichier des routes et InteliJ arrêté mettant en lumière comme erreur.

changement suivant:

GET /path/:string_arg controllers.MyController.myMethod(string_arg: String)

Pour

GET /path/:string_arg controllers.MyController.myMethod(string_arg)

et il fonctionne très bien.

+0

Il a répondu à la question pour Play 2.4.x, mais vous avez en effet raison que votre réponse résout pour Play 2.5.x. Merci! –

+0

Des suggestions pour jouer 2.6? J'ai essayé mais cela n'a pas eu d'impact. J'utilise InteliJ 2017.1 avec Play 2.6. – Renan