7
votes

Comment appeler la méthode de classe abstraite en Java

Je veux appeler une méthode de classe abstraite dans ma propre classe. La classe abstraite est la suivante: xxx

Je veux appeler la méthode ci-dessus et la classe d'appel est la suivante: xxx

Chaque fois que j'essaie de courir La classe ci-dessus, il jette une nullpointerexception sur la ligne c = cal.getarliesConnection () . Quelqu'un peut-il me dire comment résoudre ce problème?


9 commentaires

Pas assez de code j'ai peur. Nous devons voir si / comment l'appel est instancié et où GetCallFailleDstring est invoqué.


Comment et où vous appelez le getcallFaildString () de la classe de myactivity?


Pratik a raison: le problème n'est pas que la classe est abstraite. Le problème est que la valeur de "cal" est nulle lorsque vous le passez.


Thx beaucoup pour votre réponse rapide. Je vais éditer mon code ci-dessus.


"Est-ce que quelqu'un peut me dire comment résoudre ce problème?" Assurez-vous de ne pas passer null pour la variable cal , je suppose ...


Il n'y a pas de sous-classe d'appel de classe abstraite ?? plz poster le code complet


Pourquoi avez-vous besoin d'un mécanisme aussi horrible? On dirait que cela n'a aucun sens d'utiliser ce abstrait classe.


@Lion Oui u Droite Ce n'est pas un sens. Peut-être qu'il fait juste le faire pour certains kila avalce ..;)


@Lion: Je dois utiliser le code source Android. C'est pourquoi j'utilise une classe abstraite


3 Réponses :


15
votes

Premièrement, appelez une classe abstraite, vous ne pouvez donc pas l'installer directement. Vous devez créer une sous-classe, disons myCall étend l'appel qui remplace toutes les méthodes abstraites de l'appel.

Obtenir un NullPointeException signifie que tout ce que vous passez en tant qu'argument à la < Code> GetCallFaileDstring () n'a pas été initialisé. Ainsi, après avoir créé votre sous-classe d'appel, vous devez l'instancier, puis transmettez-le à votre méthode, alors quelque chose comme: xxx

où que vous appeliez GetCallFaideDstring () aurait alors besoin de quelque chose au-dessus de cela comme: xxx


1 commentaires

Thx pour votre réponse. Je vais l'essayer.



1
votes

ressemble à l'appel Cal est null avant de passer à la fonction getcallFaideString . Assurez-vous d'étendre appelez et instanciez la classe étendue et transmettez-la dans getcallFaideDstring .


0 commentaires

-2
votes

Assurez-vous que votre objet "CAL" est initialisé et non null. En outre, vous ne pourrez pas instancier d'un objet d'appel (comme sa classe Abstarct). Au lieu de cela, déclarez appel à la classe d'interface et implémentez sa méthode gearliesConnection (), dans votre classe.


1 commentaires

Vous pouvez avoir une variable instanciée de type appel en l'attribuant une valeur d'une instance de l'une de ses classes d'enfant.