2012-03-14 33 views
0

長すぎる切り替えを避けることができますか、一部の文字列をオブジェクト名に直接変換してブロックするかどうかを確認したいと思います。たとえば、私はExampleと呼ばれるクラスを持っていますが、[編集]したいのは、Example1、Example2というクラスのインスタンスを最大10個持っています。Android:オブジェクト/インスタンス名の代わりに文字列を使用する

int ExampleNum = 2;  
// can be changed to any 1-10 value corresponding to instances 
    String s = "Example" + String.valueOf(ExampleNum); 

Refresh(s); 

public void Refresh(Example example){ 
... 
} 

したがって、私はExample2の値を持つ文字列を作成し、それを私のRefreshメソッドに渡します。

[編集] すべてのインスタンスを一度に使用するのではなく、インスタンスExampleNumを変更する他のメソッドを使用して、リフレッシュしようとすると適切なExampleインスタンスがリフレッシュされるようにします。

よりもむしろ言って:

if (ExampleNum == 2) 
    Refresh(Example2); 

私は、右のインスタンス名を使用するようにExampleNumと文字列を使用します。

+0

なぜそれらをArrayListに配置せず、その位置をRefreshメソッドに渡すだけですか? – zrgiu

+0

'Example'を取るメソッドに' String'を渡しています... –

+0

混乱して申し訳ありません。メソッドRefresh(Exampleの例)を取得して、Example Exampleという名前のExampleクラスのインスタンスを、Stringを使用して使用するにはどうすればよいでしょうか。 Exampleクラスのインスタンスを作成する以外の方法はありますか? – willmer

答えて

0

なぜ配列の代わりに使用しません?

Example[] e = null; 
    for(int i=1;i<=10;i++) 
    { 
     e[i] = new Example(); 
     Refresh(e[i]); 
    } 
+0

これは例の配列ですか? e [1]は私にExample1を与えるでしょうか? – willmer

+0

はい!.e [1]は最初のインスタンス、e [2]は2番目のようになります... Example1、Example2の代わりに... –

0

StringRefreshに渡しているので、現在のコードは意味をなさない。これは、Exampleオブジェクトを引数としてとります。あなたは、文字列例1、例2を作成する方法を求めている場合

しかし、...例10は、あなたがこれを行うことができます:

for (int i = 1; i <= 10; i++) { 
    s = "Example" + i; 
    refresh(s); // assuming this takes a string 
} 
関連する問題