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