簡體   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