• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メソッド オーバーロード ete)

メソッドオーバーロードとDB接続のまとめ方

このQ&Aのポイント
  • メソッドオーバーロードとは、同じ名前のメソッドを引数の型や個数で区別して定義する方法です。
  • DB接続の処理をまとめる際には、selectExecメソッドを使用することでSQL文から要素を取得する方法があります。
  • hairetuメソッドを使用することで、ArrayListから配列に収納することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

オーバーロードを上手に使えば1/3程度にまで削れます。 String.indexOfメソッドを例にして考えます。 indexOfメソッドは4つのオーバーロードがありますが、そのうちの2つについて定義を見てみます。 (1)int indexOf(String str, int fromIndex)  文字列の中をfromIndex文字目から検索し、  指定された文字列(str)が最初に出てくる場所を探します。 (2)int indexOf(String str)  文字列の中を0文字目から検索し、  指定された文字列(str)が最初に出てくる場所を探します。 ここで、(1)と(2)をよく見比べてみましょう。 (2)は、(1)のfromIndexに0を指定したものと同じ意味です。 したがって、(2)は以下のように定義することができます。   public int indexOf(String str){     //fromIndexが指定されていないときは、デフォルト値としてfromIndex=0とする     return indexOf(str, 0);   } たった3行でメソッドが定義できます。 このテクニックを使うことで、ソースがコンパクトで読みやすいものとなりますし、 あとから処理の内容を変える必要が出ても、あちこち直さずに済みます。 「selectExec(String sql)」と「selectExec(String sql, int fromIdx)」を、 「selectExec(String sql, int fromIdx, int toIdx)」を使って表せるように工夫してみましょう。

gomadango27
質問者

お礼

int fromIdx int toIdx が逆でした><

gomadango27
質問者

補足

すっっごくわかりやすいです!!! 根本的に考え方が間違ってたのがわかりました・・・ int fromIdxの部分で カーソルを最後までいかすにはどうしたらいいかと 試行錯誤しています int toIdxは指定してあげればいいとおもうのですが。 またお時間空いたときよかったらアドバイスください。

その他の回答 (1)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

selectExecが複数あるので、1つに処理をまとめてほしい。 TESTNO、NAME、KANAの他にも必要になった場合、3箇所も直すのは修正漏れがでそうなので。 あと、個人的にはこのメソッドのthrows SQLExceptionはNo。呼び出し側へ隠蔽すべきだと思う。

gomadango27
質問者

お礼

わかりやすくありがとうございます。 まだまだオーバーロードのことがわかってないようですね これからも勉強したいと思います!!

関連するQ&A

専門家に質問してみよう