[英]How to override toString() of final class in java
通過YourKit對我的Java程序進行性能分析時,yourkit向我報告了問題出在哪里;
盡管我的程序很小,可以找到問題所在,但是我想覆蓋Integer的toString()。 使您的工具包可以打印它。
我怎樣才能做到這一點?
*我有一些方法可以做到。 就像我在yourkit探查器的分配監視器上一樣,或者在初始化對象時只是調用toString()。 因此,我可以將其與yourkit報告匹配。 但是我正在尋找一些好的解決方案。
來自Java規范
期末課程
而整數是最后一堂課
public final class Integer extends Number implements Comparable<Integer>
因此,您不允許覆蓋Integer
任何內容。
但是,Integer已經覆蓋了toString()
方法,該方法將顯示數字。
public String toString() {
return String.valueOf(value);
}
因此,我認為Yourkit如何顯示Java對象可能與它有關
YourKit可能允許您自定義其輸出,但是無法以Java適當的方式覆蓋public final方法,尤其是對於核心API類(例如java.lang.Integer)。
Integer類是最終的。 因此,您不能重載它,因為只能通過創建從父類繼承的類來重載方法。
參見http://www.roseindia.net/javatutorials/final_methods.shtml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.