簡體   English   中英

toString()方法可以在Java中接受參數嗎?

[英]Can toString() method take an argument in Java?

我在日食中進行了測試,它沒有給我任何例外。 但是我無法指定值x。 toString()可以接受參數嗎(我知道下面的例子不是最大的例子)?

Test.java

public class Test {

    public String toString(int x){
        return "Hey "+ x;
    }

}

Main.java

public class Main {
      public static void main(String[] args){

          System.out.println(new Test());


      }
}

toString()可以接受參數嗎?

是的,在這種情況下,您將有一個重載的 toString()方法。

但是,在調用System.out.println(t) ,無論如何都會調用Object#toString() (並且您可以通過檢查PrintStream#println(Object t)方法的源來驗證這一點)。

為了調用您的自定義.toString()方法,您必須這樣做(例如):

System.out.println(t.toString(5));

是的,但是在這種情況下,您將不會覆蓋Object::toString方法,而只是創建自己的重載。

您的方法有效

public String toString(int x) {
     return "Hey "+ x;
}

檢查此問題以澄清

要執行它,這將是無效的,因為您將調用Test.toString()而不是Test.toString(int)

System.out.println(new Test());

創建一個實例並調用您的方法:

Test t = new Test();
System.out.println(t.toString(10);

OUTPUT:

Hey 10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM