Comment appeler la classe abstraite méthode en java
Je veux appeler une méthode d'une classe abstraite dans ma propre classe. La classe abstraite est:
public abstract class Call {
public Connection getEarliestConnection() {
Connection earliest = null;
...
return earliest;
}
}
Je tiens à appeler la méthode ci-dessus, et l'appel de la classe est:
public class MyActivity extends Activity {
Connection c = new Connection();
private void getCallFailedString(Call cal)
{
c = cal.getEarliestConnection();
if (c == null) {
System.out.println("** no connection**");
} else {
System.out.println("** connection");
}
}
}
Chaque fois que j'essaie d'exécuter la classe ci-dessus, il lève une exception NullPointerException sur la ligne c = cal.getEarliestConnection()
. Quelqu'un peut-il me dire comment résoudre ce problème?
Pas assez de code, j'ai peur. Nous avons besoin de voir si/comment est instancié et où getCallFailedString est invoquée.
comment et où vous appelez la getCallFaildString() de MyActivity classe?
Pratique 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 êtes de passage.
thx a lot pour ur rapide rply. Je vais modifier mon code ci-dessus.
Pourquoi avez-vous besoin d'un tel mécanisme? À la recherche comme il n'a pas de sens d'utiliser que
comment et où vous appelez la getCallFaildString() de MyActivity classe?
Pratique 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 êtes de passage.
thx a lot pour ur rapide rply. Je vais modifier mon code ci-dessus.
Pourquoi avez-vous besoin d'un tel mécanisme? À la recherche comme il n'a pas de sens d'utiliser que
abstract
classe.
OriginalL'auteur shiv1229 | 2012-01-04
Vous devez vous connecter pour publier un commentaire.
Tout d'abord,
Call
une classe abstraite, par conséquent, vous ne peut pas instancier directement. Vous devez créer une sous-classe, direMyCall extends Call
qui remplace toutes les méthodes abstraites en Appel.L'obtention d'un
NullPointerException
signifie que ce que vous êtes de passage comme un argument pourgetCallFailedString()
n'a pas été initialisé. Ainsi, après la création de votre sous-classe de l'Appel, vous devez instancier et de le passer dans votre méthode, donc quelque chose comme:Où que vous appelez
getCallFailedString()
aurait alors besoin de quelque chose au-dessus comme:OriginalL'auteur Yuushi
Ressemble à la
Call cal
est null, avant de elle est passée dans la fonctiongetCallFailedString
. Assurez-vous d'étendreCall
et d'instancier la classe étendue et la passer dansgetCallFailedString
.OriginalL'auteur poy
Assurez-vous que votre objet "cal" est initialisé et non pas la valeur null. Aussi, vous ne serez pas en mesure d'instancier un objet d'Appel(comme un abstarct classe). Au lieu de cela, déclarer l'Appel de classe comme une interface et de mettre en œuvre sa méthode getEarliestConnection () dans votre classe.
Call
en lui assignant une valeur d'une instance de l'une de ses classes filles.cal est juste une refrence variable n'est pas un objet..
OriginalL'auteur Shashank Kadne