繁体   English   中英

toString(int variable,n)与toString()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM