2016-11-18 11 views
4

ケース1の条件を満たす場合にシステムが無効機能HandlePostを終了することを希望しますので、DoSomething1()の後にreturnを追加します。Androidでvoid関数を終了するにはどうすればいいですか?

しかし、Androidスタジオでは、「返品」情報が「無効」メソッドの最後の明細書として不通であると伝えます。

private void HandlePost(IHTTPSession session){ 
    try { 

     Map<String, String> files = new HashMap<String, String>(); 
     session.parseBody(files); 

     //Case 1 
     String deleteValue=session.getParms().get("ActionDelete"); 
     if (deleteValue!=null){ 
      DoSomething1(); 
      return; 
     } 

     //Case 2 
     String copyValue=session.getParms().get("ActionCopy"); 
     if (copyValue!=null){ 
      DoSomething2(); 
      return; 
     } 

    } catch (Exception e) { 
     Utility.LogError("This is an error "+e.getMessage()); 
    } 
} 
+2

戻ってくる代わりに、「else if」ブロックに「case 2」を入れるだけで済みます。 – Gulllie

答えて

3

returnステートメントは、メソッドの最後のステートメントであれば不要です。警告を無視するか、ステートメントを削除することができます。注:の最初のreturnですが、2番目は必要ありません。

ケース2elseブロックに入れると、メソッド内でのリターンを完全に回避できます。

0

DoSomething2(); 

return;文を削除し、リントが問題に

+3

リントが何をするのかを伝える代わりにリントが現れる理由は、OPを説明する方が良いでしょう。だから彼は尋ねているのです –

1

は発生しません、私は二return文が完全に必要とされていないことに同意一方で、私はこれは警告であることを同意し、それが作りますあなたがそれを保つ感覚。

このような過激な警告によって導入されたバグを見たことがあります。返信文を削除すると、そのメソッドの重要な目的が削除されます。これは現在では問題ありませんが、将来的に誰かが来て、このメソッドの最後に機能を追加して、問題を引き起こす可能性があります。

この場合、この警告は無視してください。

+0

私はあなたの答えのほとんどに同意しますが、私は強くあなたの最後の文に同意します。この具体的なケースでは、if-elseやswitch文を使用するだけで(たとえ後者が基本設計をもう少し見直す必要があるとしても)、return文を使わずに簡単に解決できます。これは警告を解決するだけでなく、重要な意図を取り除くこともできず、新しいプログラマーがどこに返品を入れるべきか、どこに追加したくないかを考えなくても済むようにします。 – Mark

+0

@マーク私は完全に同意します – StuPointerException

関連する問題