[英]toString(int variable, n) vs toString()
我一直在到处寻找这个问题的答案,但我不知道它叫什么,但是在括号中带有变量的toString方法的意义是什么?
public static String toString(Student[] list, int n)
{
}
由于某种原因,我找不到此答案。 我不知道您可以向toString提供输入,因为我认为您没有直接调用该方法,因此只要声明该类所在的类,就只打印一个字符串。
您可以为任何方法提供任何参数,但是toString
是特殊的,因为它在Java的许多内部工作中都使用过。
就是说...这不是那个toString
方法。 您要覆盖的参数不带任何参数。
@Override
public String toString() {
// implementation
}
带有参数的toString
表示该对象没有足够的信息来显示有关其自身的信息,这是矛盾的,因此最好将此方法重命名为更合适的名称。
在您的特定类中可以重写toString(),
就像是
public class ToStringEg {
private Student[] list;
private int n;
public ToStringEg(Student[] list, int n) {
super();
this.list = list;
this.n = n;
}
@Override
public String toString() {
StringBuffer buf = new StringBuffer();
// You can access list and v varible required by you
//finally create a buf based on your logic
return buf.toString();
}
}
toString()
就像其他方法一样。 碰巧的是,很多事情都会自动调用不带参数的toString()
方法,例如尝试打印对象时。 但是,这并不妨碍您制作另一个名为toString(int variable)
。 该方法永远不会被自动调用,但是如果您想在编写的任何程序中进行自定义字符串操作,您仍然可以声明并自行调用。
您的toString()
方法与从Object
类继承的特殊方法@Override public String toString()
完全不同。
我认为您应该更改方法名称,以免将来造成混淆。
如何在System.out.println()
或String.valueOf(obj)
期间自动调用toString()
方法? 没有魔术! 只需看一下String
类中valueOf()
方法的实现即可。
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.