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