当我尝试从数据库中获取某些对象时,如何删除NullPointerException

时间:2013-06-03 11:03:40

标签: nullpointerexception rmi

Java代码: 抛出异常

MainFram ...

    public MainFrame(User u) {

    initComponents();
    this.u=u;
    jList1.setModel(model);
    afisareProduse();
}

    private void afisareProduse(){
    model.clear();
    ArrayList<Produs> produse = ClientController.getInstance().getProduse();
    for(Produs p: produse) model.addElement(p);

}
来自MainController的

方法getProduse()

在这个应用程序中我使用rmi(远程方法调用)这解释了为什么我有ClientController.getInstance()。getProduse();

    public ArrayList<Produs> getProduse(){

    List<Produse> produse = produseController.findProduseEntities();
    ArrayList<Produs> list = new ArrayList<Produs>();
    for(Produse p: produse){
        list.add(new Produs(p.getId(), p.getNume(), p.getDescriere(), p.getPret()));
    }
    return list;

Produs =它的bean看起来像Produse,我在客户端和数据库之间的通信中使用Produs来遵守MVC;

Produse =数据库中的实体类;

produseController = ProduseJpaController的实例;

我希望我很清楚。谢谢你:)。

1 个答案:

答案 0 :(得分:1)

写一些表格

ClientController.getInstance().getProduse();

遇到空值时只会导致混淆。在上面,您有两个可能的null源(第一个和第二个方法调用)。

我建议:

  1. 获取每个中间值并在继续时检查它是否为空
  2. 通常,通过优先选择指示错误的空值的异常,和/或null object pattern
  3. 来避免空值
  4. 没有像上面那样将方法链接在一起,因为它会导致封装中断。您应该查看Law of Demeter以了解如何在对象上调用方法。
  5.   

    基本概念是给定的对象应该假设为少   尽可能关于其他任何事物的结构或属性   (包括其子组件),按照原则   “信息隐藏”。