我遵循了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