Pro*_*404 7 java printing println
我正在Java上开展一个项目,要求我制作一些"容器"类,如果你愿意的话.这是一个简单的版本:
public class Pair{
Object KEY;
Object VALUE;
public Pair(Object k, Object v)
{
KEY = k;
VALUE = v;
}
public Object getKey()
{ return KEY; }
public Object getValue()
{ return VALUE; }
}
Run Code Online (Sandbox Code Playgroud)
(请注意,这是严格简化的,我在最终版本中使用了正确的set/get方法.)
我的问题是:
使用ArrayList作为参数调用println方法时,例如:
ArrayList<String> arr = new ArrayList<String>();
arr.add("one");
arr.add("two");
System.out.println(arr);
Run Code Online (Sandbox Code Playgroud)
Java自动知道如何正确打印ArrayList的每个"节点"或元素.
有没有办法编写一个方法来允许println方法正确打印我的Pair类?
Cas*_*sey 15
您将需要覆盖该toString
方法并返回所需内容的字符串表示形式.
例如:
public class Pair {
Object key;
Object value;
public Pair(Object k, Object v)
{
key = k;
value = v;
}
public Object getKey() {
return key;
}
public Object getValue() {
return value;
}
public String toString() {
return "Key: " + getKey() + ", Value: " + getValue();
}
}
Run Code Online (Sandbox Code Playgroud)
比你可以做的更多:
List<Pair> pairs = new ArrayList<Pair>();
pairs.Add(new Pair("pair1key", "pair1value"));
pairs.Add(new Pair("pair2key", "pair2value"));
for (Pair p : pairs) {
System.out.println(p);
}
Run Code Online (Sandbox Code Playgroud)
你需要覆盖toString()
:
public class Pair
{
KeyObject key;
ValueObject value;
public Pair(KeyObject k, ValueObject v)
{
key = k;
vale = v;
}
// ...
@Override
public String toString()
{
return "Key: " + key.getKey() + " - Vlaue: " value.getValue();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
55592 次 |
最近记录: |