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