我遵循了NullPointerException異常相關的鏈接,例如:空指針異常
How to solve java.lang.NullPointerException error?
What is a NullPointerException, and how do I fix it?
我得到了大部分從代碼整理出我的空指針異常,但我無法得到遵循空指針異常的原因。我運行在調試模式,並看到「sc.items.add(cd)」(Calculate.java的第9行);一片空白!任何人都可以解釋原因。
我正在實施訪問者模式。我正在計算不同項目的成本。一個項目是CD。下面是代碼:
ShoppingCart.java
import java.util.ArrayList;
public class ShoppingCart {
ArrayList<Visitable> items;
public double calculatePostage(){
//Create a visitor
PostageVisitor visitor = new PostageVisitor();
// iterate through all items
for(Visitable item: items){
item.accept(visitor);
}
double postage = visitor.getTotalPostage();
return postage;
}
}
Calculate.java
public class Calculate {
public static void main(String[] args) {
// TODO Auto-generated method stub
ShoppingCart sc = new ShoppingCart();
CD cd = new CD(100);
sc.items.add(cd);
double postageInMain = sc.calculatePostage();
System.out.println(postageInMain);
}
}
CD.java
public class CD implements Visitable {
private double price;
@Override
public void accept(Visitor visitor) {
// TODO Auto-generated method stub
}
public CD(double price){
this.price = price;
}
double getPrice(){
return price;
}
}
PostageVisitor.java
public class PostageVisitor implements Visitor {
private double totalPostageForCart;
public void visit (CD cd){
totalPostageForCart += cd.getPrice();
}
public void visit (DVD dvd){
totalPostageForCart += dvd.getPrice();
}
// return the internal state
public double getTotalPostage(){
return totalPostageForCart;
}
}
在
ShoppingCart
類
Visitable.java
public interface Visitable {
public void accept(Visitor visitor);
}
Visitor.java
public interface Visitor {
public void visit(Book book);
public void visit(CD cd);
}
的ArrayList物品;未初始化.... –
MGorgon