2013-05-16 2 views
5

このコードスニペットの仕組みを誰もが説明できます...実際のコード自体は、Android用のMVPパターンの使用に関する簡単なチュートリアルのものではありません。これは内部クラスですか?

私の主な質問は、このコード構造がどのように動作するか、これが内部クラスか、並べ替えか、トランザクションかどうかです。私はJavaのようなコード構造を見たことがありませんし、それが効率的かつ最小限に見えるので、それから学ぶ。

public void loadCustomer(int id) { 
    (mCustomerModel.load(id)) { 
     mCustomerView.setId(mCustomerModel.getId()); 
     mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
     mCustomerView.setLastName(mCustomerModel.getLastName()); 
    } 
} 
+0

これは組織スタイルのほうが、中括弧を完全にスキップすることができます。 – Alex

+0

その3つのメソッド呼び出しは別のメソッド呼び出しの中で呼び出されます。これは私を混乱させています...最初のメソッド呼び出しの括弧内にあります。私は愚かではないのですか?:-) – leeb898

+1

@ leeb898いいえ ';' '(mCustomerModel.load(id))'の後ろに? – assylias

答えて

-2

これは単純ですが、確かに少し珍しい表示されます。 mCustomerModel.load(id)を囲む丸い括弧は余分です。この場合、次の3行の中括弧も余分です。別のケースでは、ローカル変数がそのブロック内で宣言されていれば、そのスコープはそのブロックだけに限定されます。以下のコードは同等です:

public void loadCustomer(int id) { 
    mCustomerModel.load(id); 
    mCustomerView.setId(mCustomerModel.getId()); 
    mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
    mCustomerView.setLastName(mCustomerModel.getLastName()); 

} 

編集:丸括弧内の行がif文であるべきであるという意図はありません。その場合、「if」が追加されると、コードはかなり自明です。

+3

これはコンパイルされません( ';'がありません) – assylias

+0

質問を誤解していると思われる場合は、単に回答を削除することができます。 – assylias

+0

@Monty Goodepuppee私は今理解していますが、If文は通常の意味であり、それがなければメソッド呼び出しの組織構造に過ぎません。 – leeb898

-3

EDIT:そこ(mCustomerModel.load(id))if声明であるべきであり、それは私の答えは想定していものです。

public void loadCustomer(int id) { 
    (mCustomerModel.load(id)) { 

mCustomerModel.load(id)おそらく顧客IDが有効であるかどうかを確認し、それがある場合、修正/アクセスする顧客データを準備します。

 mCustomerView.setId(mCustomerModel.getId()); 

顧客のIDを取得し、おそらくデータを表示するGUI要素である、mCustomerViewでそれを設定します。

 mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
     mCustomerView.setLastName(mCustomerModel.getLastName()); 

顧客の姓と名のために同じことを行う(GUIで表示)

} 
} 
+2

'if'文はありません。 – dlev

+0

@dlev、wow。どのように私はそれをお見逃しですか? – BLuFeNiX

+0

公正であるためには、私は 'if'文でなければならないと思います。残りの説明は正しいです。 – dlev

関連する問題