假设我有一个包含多个私有String变量的类:
public class Children
{
private String child0, child1;
}
我想创建一个SetName方法,它将child0或child1设置为指定值
所以在实例化Children类之后我可以做这样的事情:
myChildren.SetName(child0, "Lucy");
如何在方法中传递私有类变量String?我如何编码SetName方法?我知道我可以创建一个数组,并传递元素编号,但这不是我需要的,而不是我想要实现的方式。
答案 0 :(得分:4)
您可以将孩子存储在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);
}
}
答案 1 :(得分:3)
为什么不为每个孩子创建单独的方法。
public void setChild0Name(String name)
{
this.child0 = name;
}
答案 2 :(得分:0)
如果您想保留私有字段:
private string child0, child1;
我不确定你能做什么,但为每个字符串实现一种方法,如RMT所说。
另一方面,如果这不是问题,那么您可以创建一个私有Dictionary<string, string>
并将child0,child1等存储为具有空值的键。
然后你的setter方法是:
myChildren.Set("child0","Lucy");
您只需检查字典中是否存在“child0”键,并将其值更新为“Lucy”。如果给定的密钥不存在,您可以抛出异常,添加新的密钥值对等