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 = Produse に似た Bean です。MVC に準拠するために、クライアントとデータベース間の通信で Produs を使用しました。

Produse = データベースからのエンティティ クラス。

produseController = ProduseJpaController のインスタンス。

私がはっきりしていたことを願っています。ありがとうございます:)

4

1 に答える 1

1

フォームの何かを書く

ClientController.getInstance().getProduse();

null に遭遇したときに単純に混乱を招くだけです。上記では、null の可能性のあるソースが 2 つあります (1 番目と 2 番目のメソッド呼び出し)。

私がお勧めします:

  1. 各中間値を取得し、続行するときに null を検査する
  2. エラーを示す null 値やnull オブジェクト パターンよりも例外を優先することで、一般的に null を回避する
  3. カプセル化の中断につながるため、上記のようにメソッドを連鎖させないでください。オブジェクトに対してメソッドを呼び出す方法については、Demeterの法則を確認してください。

基本的な概念は、「情報隠蔽」の原則に従って、特定のオブジェクトが他のもの (サブコンポーネントを含む) の構造またはプロパティについて可能な限り想定しないようにすることです。

于 2013-06-03T11:06:55.820 に答える