1

Java代码:这里抛出异常

主框架 ...

    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);

}

上面提到的方法 getProduse(),来自 MainController

在这个应用程序中,我使用 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 的实例;

我希望我很清楚。所以谢谢 :)

4

1 回答 1

1

写一些形式的东西

ClientController.getInstance().getProduse();

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

我会推荐:

  1. 获取每个中间值并在继续时检查它是否为空
  2. 通常避免空值,通过首选异常而不是指示错误的空值和/或空对象模式
  3. 不要像上面那样将方法链接在一起,因为它会导致封装中断。您应该查看Demeter 法则,了解如何在对象上调用方法。

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

于 2013-06-03T11:06:55.820 回答