我有這個簡單的帖子請求:
@PostMapping
public <T> void create(T data) {
System.out.println(data);
}
每當我呼叫此請求(在表單資料中提供任何資料型別,如字串或數字)時,它都會在控制臺中列印:
java.lang.Object@46093a82
它不會給出任何錯誤,例如僅列印此物件而不是“名稱”。
有什么問題?
uj5u.com熱心網友回復:
java.lang.Object@46093a82被列印,因為那是需要列印的。
所有 Java 物件都有一個 toString() 方法(該方法在 Object 類中定義),當您嘗試列印物件時會呼叫該方法。
Object.toString() 方法回傳一個字串,由類名、@ 符號和物件的十六進制哈希碼組成。
要在呼叫 System.out.println(Object) 時列印不同的內容,必須在自己的類中重寫 toString() 方法。
簡單的例子:
public class Foo {
private String name;
@Override
public String toString() {
return name;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/495756.html
上一篇:將泛型型別(u16,u32,u64)轉換為Rust中的位元組向量Vec<u8>
下一篇:根據rust函式中的泛型選擇常量
