Передать внутреннюю переменную в качестве параметра в метод - PullRequest
0 голосов
/ 27 мая 2011

Скажем, у меня есть класс с несколькими частными строковыми переменными:

public class Children
{
    private String child0, child1;
}

Я хочу создать метод SetName, который бы присваивал child0 или child1 указанное значение

Так что я мог бысделайте что-то подобное после создания экземпляра класса Children:

myChildren.SetName(child0, "Lucy");

Как передать переменную частного класса String в метод?Как мне кодировать метод SetName?Я знаю, что могу создать массив и передать номер элемента, но это не то, что мне нужно, не то, как я хочу это реализовать.

Ответы [ 3 ]

4 голосов
/ 27 мая 2011

Вы можете хранить дочерние элементы в одной из реализаций Map. HashMap подходит для большинства случаев.

public class Children
{
    private Map<String, String> children = new HashMap<String, String>();

    public void SetName(string child, string name)
    {
        children.put(child, name);
    }
}
3 голосов
/ 27 мая 2011

Почему бы просто не создать отдельные методы для каждого ребенка.

public void setChild0Name(String name)
{
    this.child0 = name;
}
0 голосов
/ 27 мая 2011

Если вы хотите сохранить личные поля такими, как они есть:

private string child0, child1;

Я не уверен, что вы можете сделать что-то еще, кроме реализации одного метода для каждой строки, как говорит RMT.

С другой стороны, если это не проблема, вы можете создать приватное Dictionary<string, string> и сохранить child0, child1 и т. Д. Как ключи с пустыми значениями.

Тогда ваш метод установки будет:

myChildren.Set("child0","Lucy");

и вы просто проверите, существует ли ключ «child0» в вашем словаре, и обновите его значение до «Lucy».Если указанный ключ не существует, вы можете выдать исключение, добавить новую пару ключ-значение и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...