Java: non-static method cannot be referenced from a static context

Résolu/Fermé
Ritius - 25 oct. 2020 à 16:44
 Ritius - 28 oct. 2020 à 11:44
Bonjour! Dans l'une de mes classes, j'essaie d'appeler une méthode qui vient d'une autre classe. Donc j'ai fait:
AutreClasse.methode();

Sauf que quand je fais ça, j'ai l'erreur suivante: "non-static method cannot be referenced from a static context"

elle est déclarée en premier lieu dans une interface, de la manière suivante:
public static Type methode();

et elle est également implémentée (et complétée) de la même manière dans AutreClasse
Donc je vois pas d'où vient le problème, étant donné que je l'ai déclaré partout en static? :(

Si quelqu'un a la réponse, je lui en serai gré :)
A voir également:

3 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
25 oct. 2020 à 18:00
Bonjour,

Que ce soit dans une classe ou dans une interface il n'est jamais possible de déclarer une méthode static sans code comme ton
public static Type methode();
  • Soit dans ton interface tu as une méthode static (donc avec du code) et dans ce cas il faut l'appeler de manière static avec le nom de l'interface.
    public interface Interface {
        static String methode(){
            return "Hello World!";
        }
    }
    Interface.methode();
  • Soit dans ton interface tu as juste une méthode déclarée, sans code (donc non static) et dans ce cas il faut l'appeler depuis un objet qui implémente cette interface.
    public interface Interface {
        String methode();
    }
    public class Classe implements Interface {
        @Override
        public String methode(){
            return "Hello World!";
        }
    }
    Classe objet = new Classe();
    objet.methode();
1