1

インスタンスの ID 番号を単に報告する 1 つのメソッドを持つクラス Object があるとします。通常、「Object obj_1」のようなオブジェクト クラスのインスタンス化と、「obj_1.report」のようなメソッドの呼び出しをハードコーディングします。

私の質問は、プロシージャルにオブジェクトをインスタンス化する方法です。たとえば、obj_1、obj_2 など、obj_n まで n 個のオブジェクトを作成したいとします。当然、実際のループについてではなく、変数を使用してクラスをインスタンス化する方法について質問していますが、名前の代わりに変数の値を取得して obj_ プレフィックスに追加します。おそらくキャストで?また、ID のみを指定して特定のインスタンスのメソッドを手続き的に呼び出すにはどうすればよいですか。インスタンス化とメソッド呼び出しの両方が同じように機能すると思いますが、初心者として、ハードコーディングするのではなく、外出先で正確に行う方法を理解するのに苦労しています。

前もって感謝します!

編集: C++ 構文に興味があります

4

1 に答える 1

0

私が考えることができる最善の解決策は、オブジェクトをマップに格納することです。ID( "obj_1"、 "obj_2"など)は、それらのインスタンスを参照するキーです。

Java(言語を指定しなかったため)のサンプルコードは次のようになります。

Map<String, Object> objMap = new HashMap<String, Object>();
for(int i = 1; i <= 10; i++) {
    objMap.put("obj_" + 1, new Object());
}

for(int i = 1; i <= 10; i++) {
    if(objMap.containsKey("obj_" + i))
        objMap.get("obj_" + i).report();
}
于 2011-10-12T13:29:41.830 に答える