複数のオブジェクトをメソッドの処理結果として得るには

どうするのがいいんでしょ。1つのオブジェクトを返すメソッドに分割する、インスタンス変数に入れるというのはナシね。


1. 結果を入れるオブジェクトを引数で渡す

Foo foo;
Bar bar;

setFooBar(foo, bar);

引数への代入がイヤン。


2. Objectの配列(またはList)で返す

Object[] objArray = getFooBar();

Foo foo = (Foo)objArray[0];
Bar bar = (Bar)objArray[1];

キャストがイヤン。


3. インナークラスのオブジェクトに詰めて返す

FooBar fooBar = getFooBar();

Foo foo = fooBar.getFoo();
Bar bar = fooBar.getBar();

インナークラスがイヤン。


4. もっといいのがあるぜぃ
教えて。


今のところ2でやってます。