- ベストアンサー
メソッドにより複数の情報を得たい場合
例えば、他のクラスのメソッドに何らかのインスタンス配列を渡してやって、その中から何らかの基準で選択して要素を返すようなメソッドを考えます。 さらに、同時に配列のどの位置が選ばれたのかを知りたい場合は、みなさんならばどう対処しますか? class Hoge{} class A { public Hoge select(Hoge h[]){ return h[(int)(Math.rand()*h.length)]; } } class Test{ public static void main(String argv[]){ A a = new A(); Hoge hoge[] = new Hoge[100]; Hoge h = a.select(hoge);//同時にどの位置が選択されたかも知りたい } } 上の例だと、「最初から選択された位置を返して、それからHogeインスタンスを得ればいいじゃないか」という話もごもっともなのですが、もし仮にJavaがポインタを許すと仮定した場合の Hoge select(Hoge h[], int *n){ return h[*n = (int)(Math.rand()*h.length)]; } Hoge h = select(hoge, &idx); に代わるような方法はないものかなぁ。。 という素朴な疑問から質問をしてみました。 考え付いた方法は、サイズ1のint配列を引数に渡して値をセットするか, 欲しい値などをメンバにもつクラスを定義してやって、それを select から返す方法か・・くらいです。 みなさんならこういった場合(メソッドにより取得したい値がいっぱいある場合) 、どうしますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- arakororin
- ベストアンサー率39% (80/205)
- chuckcavaness
- ベストアンサー率53% (7/13)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
お礼
ご回答、ありがとうございます。 なるほど、ということは別にクラスを設けるという方法がスマートということなんですね。 ソースまで下さってありがとうございますm(_ _)m bean の意味がちょっと気になりますが、大変参考になりました!