- 締切済み
List型の引数を設定する方法
複数の名前などを setName(List<String> NameList) ↑こんな感じのメソッドに渡してセットしたいのですが、 この時setName()メソッドを呼び出す時の引数に 複数の名前を同時に入れるには、どういう記述の仕方を したらよいと思いますか? ちなみに、この時点ではまだListの生成をしてはいけなくて、 メソッドに格納した後Listを生成、getName()メソッドから オブジェクトを取得するようにしたいのですが・・・ いまいちListって分かりません。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- koko_u_
- ベストアンサー率18% (459/2509)
>複数の名前を同時に入れるには、どういう記述の仕方を >したらよいと思いますか? こんな風? setName(Arrays.asList("John", "Mary", "Ken")); どう考えても始めから setName(String... names); というメソッドを作成した方がよいと思いますけど。
- anmochi
- ベストアンサー率65% (1332/2045)
> いまいちListって分かりません。 大変申し訳ないがこの一言で何を言っている(何がしたい)のか分かった。確かにListとは何ぞやという事について調べた方が早そうだね。 setName(List<String> NameList) には、絶対にListしか渡せない。これは、呼び出し側でList(を実装したクラスの)インスタンスを生成しなくてはいけない事を意味する。なので、 > この時点ではまだListの生成をしてはいけなくて、 と矛盾する。メソッドそのものを変えるしか無いです。 案1:ListじゃなくてArrayにする setName(String[] NameList) これなら複数のStringを渡せます。が、呼び出し側でStringの個数が分かっていないといけません。分かってないからListを使うのであって、今回の案件には適していないと思われます。 案2:setNameじゃなくてaddNameにする addName(String Name) 渡したいStringの数だけこのメソッドを呼び、クラス内部でListを保持するようにします。 > この時点ではまだListの生成をしてはいけなくて、 という縛りの意味は分かりませんが、今挙げたそれぞれの案は両方やはりそれなりの制限はあるので、前提そのものを見直す方が個人的にはお勧めなのですが・・・・。
補足
いや・・・おっしゃる通りなんですけど、 自分がこうゆう処理をしたいというわけではなくて 問題がそうなってるんです。 なんでメソッドを呼び出す前にリストを生成してはいけないのか 分からないんですけどね。 1.問題では3人の人の名前と年齢をsetメソッドを 呼び出してオブジェクトに格納する。 2.Listを生成して、作成した(setメソッドのある)クラスの オブジェクトに格納する。 となってるんです。 んでsetメソッドの引数がList<String>型になってるんで、 listとして渡さないといけないのかな?と思ったわけですが・・・