2016-07-04 15 views
-1

Ich verwende diese Aktivität, um Produktinformationen in einem Tabellenlayout anzuzeigen. Wenn keine Produkte oder keine Produktinformationen vorhanden sind, erhalte ich beim Start dieser Aktivität eine Nullzeigerausnahme. Wie gehe ich damit um?Nullzeiger Ausnahme beim Starten einer Aktivität

Ich rufe diese Methode in der obigen Aktivität, um meine Produktinformationen zu berechnen.

public static double calculateFlightTransactionTotal(PurchaseDao purchaseDao, PurchaseRefundDao purchaseRefundDao, AirlineActivity activity) { 
     double purchaseAmount = calculateFlightLegPurchaseTransactions(purchaseDao, activity); 
     double refundAmount = calculateFlightLegRefundTransactions(purchaseRefundDao, activity); 
     double netAmount = purchaseAmount - refundAmount; 
     return (netAmount > 0) ? netAmount : 0; 
    } 

Die Linie, die NPE bei Doppel netTotalValue verursacht, ist = ...

FATAL EXCEPTION: main 
                  Process: com.miairline, PID: 8096 
                  java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.miairline.model.PurchaseDao.getSuccessfulTransactions()' on a null object reference 
                   at com.miairline.utils.SalesUtil.calculateFlightLegPurchaseTransactions(SalesUtil.java:43) 
                   at com.miairline.utils.SalesUtil.calculateFlightTransactionTotal(SalesUtil.java:35) 
                   at com.miairline.settings.SettingsFragment.startSalesReportActivity(SettingsFragment.java:1134) 
                   at com.miairline.settings.SettingsFragment$22.onClick(SettingsFragment.java:1114) 
+2

Sie haben die Codezeile nicht eingefügt, in der der Absturz bei com.miairline.utils.SalesUtil.calculateFlightLegPurchaseTransactions (SalesUtil.java:43) auftritt – aelimill

+0

Sie rufen 'getSuccessfulTransactions()' auf einem Nullobjekt auf. – SripadRaj

+0

Ich habe es aufgenommen. Zeile 43 public double calculateFlightLeg .... Sie befindet sich im zweiten Codeblock. – punit1337

Antwort

1

es setzen in if ... else-Anweisung. zum Beispiel

if(value == null || value < 0) 
{ 
     // Your code 
} 
else 
{ 
} 

oder

if(!value==null) 
{ 
     // Your code 
} 
else 
{ 
} 

und Problem Verwendung für Absturz try..catch -Block.

+0

Mein Wert ist ein Doppel und ich kann den Operator nicht für einen doppelten Wert verwenden. – punit1337

+0

können Sie verwenden, wenn (Wert == null) –

+0

Ich habe versucht, Ihre Lösung, aber es hat nicht funktioniert. =/ – punit1337

Verwandte Themen