Android: использование строки вместо имени объекта / экземпляра - PullRequest
0 голосов
/ 14 марта 2012

Я хотел бы посмотреть, смогу ли я избежать длинного переключения или блока, если напрямую преобразовать некоторые строки в имя объекта. Например, у меня есть класс с именем Example, и я хочу, чтобы [edit] имел до 10 экземпляров класса Example1, Example2 и так далее. Могу ли я использовать что-то вроде:

  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.

[править] Я не хочу использовать все экземпляры одновременно, но есть другие методы, которые изменяют int ExampleNum, чтобы при попытке обновить его обновлял соответствующий экземпляр Example.

Вместо того чтобы сказать:

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

Я бы использовал ExampleNum и String, чтобы использовать правильное имя экземпляра;

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

Почему бы не использовать вместо этого массивы ??

Example[] e = null;
    for(int i=1;i<=10;i++)
    {
        e[i] = new Example();
        Refresh(e[i]);
    }
0 голосов
/ 14 марта 2012

Ну, ваш код в его нынешнем виде не имеет никакого смысла, так как вы передаете String в Refresh, который принимает Example объект в качестве аргумента.

Однако, если вы спрашиваете, как вы можете создать строки Example1, Example2, ... Example 10, вы можете сделать это:

for (int i = 1; i <= 10; i++) {
    s = "Example" + i;
    refresh(s); // assuming this takes a string
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...