IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Forcer l'écriture d'une méthode override dans une classe custom


Sujet :

Android

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Forcer l'écriture d'une méthode override dans une classe custom
    Salut !

    Sur Android, lorsque que je veux faire appel à un BroadcastReceiver, j'utilise cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BroadcastReceiver br = new BroadcastReceiver()
    {
     
    	@Override
    	public void onReceive(Context context, Intent intent)
    	{
    		// TODO Auto-generated method stub
     
    	}
    };
    On voit donc bien que des qu'on a tapé le "new BroadcastReceiver()", on a direct la méthode override qui s'écrit toute seule, pour indiquer qu'il faut l'utiliser afin de traiter le résultat.

    J'ai donc voulu faire ma propre class qui etend de BroadcastReceiver, mais quand j'écris ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyCustomBroadcastReceiver customBr = new MyCustomBroadcastReceiver()
    je n'ai pas le override de la méthode qui s'écrit automatiquement comme au dessus, pourtant ma classe est comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class MyCustomBroadcastReceiver extends BroadcastReceiver
    {
    	public MyCustomBroadcastReceiver()
    	{
     
    	}
     
    	@Override
    	public void onReceive(Context context, Intent intent)
    	{
     
    	}
    }
    Pourtant j'ai besoin que des que j'ai fini d'écrire mon new MyCustomBroadcastReceiver(), la methode override vienne s'inscrire directement.

    Comment régler ce problème ?

    Merci !

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Ben justement, il fallait pas donner une définition de onReceive() dans ta classe. Si tu fais ça, du coup cette méthode est définie et les classes filles ne sont plus obligées d'implémenter leur propre définition.
    Il fallait rendre ta classe abstraite et laisser cette méthode non définie (en gros : ne pas y toucher, ne pas en parler, ne rien faire, l'oublier,) pour forcer les classes filles à la définir.

    C'est pas que Android, c'est pareil pour tout Java.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Salut thelvin !

    Eh bah merci pour ces explications ! Ca marche effectivement. Oui c'est java en général depuis la 5 il me semble même mais je disais Android car j'étais dans le forum

    Merci pour ta réponse qui m'a bien dépanné

    Bonne soirée

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Depuis toujours, même avant la 5. @Override n'a rien à voir avec ça, ce n'est pas à ça qu'il sert.

    @Override demande au compilateur de vérifier que la méthode est bien une définition ou une redéfinition d'une méthode déclarée par un type ascendant.
    En gros c'est une affirmation du style :
    "Cette méthode que je définis ici, je le fais dans le but de définir ou redéfinir une méthode déclarée par une classe ascendante ou une interface ascendante. Si ce n'est pas ce qu'elle fait, c'est que je me suis trompé quelque part, sûrement dans le nom ou les paramètre. Dans ce cas, dis-moi que je me suis trompé, avec une erreur de compilation."
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Ah d'accord mea culpa alors.

    Merci encore pour cette précision sur l'override

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. arrayList dans une méthode recupérer dans une autre méthode
    Par toufik34 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 31/07/2013, 09h45
  2. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  3. Réponses: 2
    Dernier message: 18/12/2008, 14h15
  4. [POO] utiliser une méthode présente dans une autre classe
    Par arnaudperfect dans le forum Langage
    Réponses: 5
    Dernier message: 19/10/2007, 14h23
  5. Réponses: 16
    Dernier message: 26/10/2006, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo