2017-08-10 3 views
0

J'ai des classes A et B, je veux accéder à une méthode de la classe A dans la classe B, mais il ne fonctionne pas, je reçois le message suivant:Java Accès méthode d'une classe alternative

Exception en fil « principal » java.lang.NullPointerException

La partie particulière qui est la cause de c'est lorsque vous accédez ba:

ba.getBalance() >= LIM   
ba.debit(LIM); 

Je ne sais pas ce que je suis d Je me trompe car j'ai créé le champ privé et l'ai initialisé dans main.

Classe B:

public class B { 

     private A ba; 
     private long balance; 

     public B(long amount, A ba){ 
     } 

     public boolean testCase(long amount){ 
      //.. 
     } 

    public long getBalance(){ 
     return balance; 
    } 

Classe A:

public class A { 

    private long balance; 

    public A(long amount){ 
    } 

    public boolean debit(long amount){ 
     //.. simple arithmetic 
    } 

    public long getBalance(){ 
     return balance; 
    } 

principal

A aa = new BankAccount(amount1); // where amounts are user input 
B bb = new GoCardAccount(amount2, aa); 
+1

Vous devez assigner l'instance de 'ba' que vous passez au constructeur' B' à votre membre de domaine privé 'ba', comme vous le faites pour' amount' : 'public B (montant long, A ba) {this.ba = ba; this.balance = montant} ' –

Répondre

0

vous oubliez de mettre ba dans le constructeur

public B(long amount, A ba){ 
     balance = amount; 
     this.ba = ba; 
    } 
0

Ajoutez cette ligne dans le constructeur B this.ba = ba. Vous n'attribuez aucune valeur à A, donc il lance NPE