鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Java/ 如何重寫java數(shù)組的toString方法?

如何重寫java數(shù)組的toString方法?

  1. 如何重寫java數(shù)組的toString方法?實現(xiàn)打印數(shù)組的時候可以打出內容,而不是打印地址。

    int[] a = {1,2,3};
    System.out.println(a);
  2. 數(shù)組也是一種引用類型,那么這種引用類型的實現(xiàn)源碼在哪呢?
回答
編輯回答
挽歌

不能重寫arraytoString方法,對于數(shù)組的操作使用 Arrays

  • Arrays.toString()
  • Arrays.deepToString() 二維數(shù)組toString
2018年1月5日 09:06
編輯回答
咕嚕嚕

嚴格來講,java無法重寫/覆蓋任何類本身的方法,只能通過繼承,在子類中重寫,但此時原先那個類的方法實際上并沒有改變。

所以,無法做到你說的,重寫數(shù)組的toString方法然后下次打印數(shù)組的時候就會按照自定義的方式打印了。

比如

class Parent {
    public void m() {
        ...
    }
}

class Child entends Parent {
    public void m() {
        ...
    }
}

Parent p = new Parent();
p.m();

最終p調用的仍然是自己的m方法,而不是子類中定義的。

不過這一問題對某些其他語言來說倒是可以實現(xiàn),比如javascript,python。這些語言可以直接改變某個類,改變后可影響到所有該類的實例(無論是之前創(chuàng)建的還是之后創(chuàng)建的)。

第二個問題,數(shù)組是java的內置類型,其并不是由java語言實現(xiàn)的。要想找實現(xiàn)代碼就得去虛擬機的源碼中找了。

2017年6月15日 13:31