-1
我是Java新手,正在學習語言基礎知識。在Enum類中瞭解Java 7隱式方法調用
有人可以向我解釋如何在沒有函數調用時調用toString方法嗎?我認爲這是與第二行的實際枚舉的詞語,如:
KALAMATA(「卡拉馬塔」),LIGURIO(「Ligurio」)...
此枚舉類的全部目的是這樣ENUM值不打印屏幕上的所有大寫字符。
有人可以請解釋我如何toString方法在這個類中使用?像什麼時候被叫?它怎麼叫?
public enum OliveName {
KALAMATA("Kalamata"),LIGURIO("Ligurio"),PICHOLINE("Picholine"),GOLDEN("Golden");
private String nameAsString;
//for enum classes, the constructor must be private
private OliveName(String nameAsString) {
this.nameAsString = nameAsString;
}
@Override
public String toString() {
return this.nameAsString;
}
}
我不明白你怎麼能只SYSOUT(oliveName);並且toString方法被隱式調用? – mosawi
@mosawi看看[println()']的實現(http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java/io/PrintStream。 Java的#PrintStream.println%28java.lang.Object%29)。你的問題實際上並不是與枚舉本身有關的... – awksp
這是通過println()方法完成的:http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream。 html#println%28java.lang.Object%29 – wvdz