Java 将内部变量作为参数传递到方法中
假设我有一个包含多个私有字符串变量的类:Java 将内部变量作为参数传递到方法中,java,oop,methods,Java,Oop,Methods,假设我有一个包含多个私有字符串变量的类: public class Children { private String child0, child1; } 我想创建一个SetName方法,将child0或child1设置为指定的值 在实例化Children类之后,我可以做如下操作: myChildren.SetName(child0, "Lucy"); 如何在方法中传递私有类变量字符串?如何对SetName方法进行编码?我知道我可以创建一个数组,并传递元素号,但这不是我所需要的,也不
public class Children
{
private String child0, child1;
}
我想创建一个SetName方法,将child0或child1设置为指定的值
在实例化Children类之后,我可以做如下操作:
myChildren.SetName(child0, "Lucy");
如何在方法中传递私有类变量字符串?如何对SetName方法进行编码?我知道我可以创建一个数组,并传递元素号,但这不是我所需要的,也不是我想要实现的方式。您可以将子元素存储在
Map
的一个实现中<代码>哈希映射适用于大多数情况
public class Children
{
private Map<String, String> children = new HashMap<String, String>();
public void SetName(string child, string name)
{
children.put(child, name);
}
}
公共类子类
{
private-Map-children=new-HashMap();
public void SetName(字符串子项、字符串名称)
{
children.put(child,name);
}
}
为什么不为每个孩子创建单独的方法呢
public void setChild0Name(String name)
{
this.child0 = name;
}
如果要保持私有字段的原样,请执行以下操作:
private string child0, child1;
我不确定您是否可以做任何其他事情,但要像RMT所说的那样为每个字符串实现一个方法
另一方面,如果这不是一个问题,那么您可以创建一个私有的字典
,并将child0、child1等存储为具有空值的键
那么您的setter方法将是:
myChildren.Set("child0","Lucy");
您只需检查字典中是否存在“child0”键,并将其值更新为“Lucy”。如果给定的键不存在,您可以抛出异常,添加新的键值对,等等。如果您不想存储任何给定字符串的值,您还可以在
子项上添加一些输入验证。谢谢!这可能是最有效的方法。Dictionary
是一个.NET BCL类。标签上说OP使用Java。这是一个想法,我考虑过这样做。。。但不幸的是,它不能满足我的需要。谢谢你的贡献。