2011-01-18 11 views
3

さまざまな種類の複数のオブジェクトが含まれ、返されるオブジェクトを作成したいとします。Javaで複数のオブジェクトを返すオブジェクトを作成する

これにはどのような方法が最適ですか?そこにはいくつかの方法があると思われるので、私はさまざまな人々のアイデアを聞くことに興味があります。

ありがとうございました。

+1

封筒と返品はどういう意味ですか? getObjects()のようないくつかの機能を持っているということですか? –

+0

あなたは何を意味しますか?あなたは何をしたいですか? –

答えて

3

すべてのオブジェクトを一度に一度に返すことを意味する場合は、すべてのオブジェクトを(おそらくは内部の)クラスにカプセル化し、そのクラスのインスタンスを返すことをお勧めします。

class Container { 
    public static class Container { 
    Type1 obj1; 
    Type2 obj2; 
    ... 
    } 
    private Type1 obj1; 
    private Type2 obj2; 
    ... 
    public Container getAllObjects() { 
    Container container = new Container(); 
    container.obj1 = this.obj1; 
    ... 
    return container; 
    } 
} 

(技術的には、あなたはまた、しかし、私は型の安全性の欠如と発注エラーを作るためのオープンな可能性のためにこれをお勧めしません、Object[]配列内の複数のオブジェクトを返すことができます。)

をあなたがすることを意味した場合個別のメソッド呼び出しから、オブジェクトを一つずつを返し、古き良きゲッターが

class Container { 
    private Type1 obj1; 
    private Type2 obj2; 
    ... 
    public Type1 getObject1() { 
    return obj1; 
    } 
    public Type2 getObject2() { 
    return obj2; 
    } 
    ... 
} 
2

:-)あなたの友達である次のようなクラスを作成します。

class ReturnValue { 
    Type1 value1; 
    Type2 value2; 
} 

あなたが常に返すタイプを知っている場合は、メソッドからインスタンスを返します。

唯一の方法は、値を含むObject[]を返すことです。

1

「返品」とはどういう意味ですか?私がこの用語を理解する限り、オブジェクトは何も返さず、それらはただのものです。彼らは、目的のオブジェクトを返すゲッターを持つことができます。あなたは何を話しているのか教えてください。

私が正しく理解しているのであれば、いくつかのプライベートオブジェクト(変数)を持つクラス(オブジェクト)を設定し、トラフ関数(メンバ)を取得したいだけです。

-1)渡された変数が参照渡しされているという事実を使用します。

2

は、まあ、私はあなたのために見ることができる3つの方法があります。あなたはリターンを心配する必要があなたの関数内で直接オブジェクトを変更することができず、この方法は

値-2)あなたは、オブジェクトの配列をシンプル作成することができます。

Object[] returnTab = new Object[numberToStore]; 

(これは非常にきれいではありません、私が見つけます)

-3)パブリッククラス容器{ 公共ObjectAに

ReturnObjectContainerオブジェクトを作成します。 public ObjectB b;

Arraylist list = new list();

... //あなたが }

1

を保存する必要があるものは何でも追加は、これはすべてのコレクションオブジェクト(およびArrayListのようなListインタフェースのほとんどの実装)の定義はありませんか?

コレクションオブジェクトには他のオブジェクトが含まれており、それらをメソッド呼び出しで戻しますか?

関連する問題