在通过YourKit分析我的java程序时,yourkit报告了我的问题所在;
虽然我的程序很小,但我可以找到问题的地方,但我想覆盖Integer的toString()。这样你的软件包就可以打印出来了。
我该怎么做?
*我有办法做到这一点。就像我在yourkit profiler的分配监视器上,或者我在初始化对象时调用toString()。所以我可以将它与你的套件报告相匹配。但我正在寻找一些好的解决方案。
答案 0 :(得分:2)
来自Java规范
Chapter.8 Classes - final classes
最终课程
Integer是最后一堂课
public final class Integer extends Number implements Comparable<Integer>
因此,您不允许覆盖Integer
内的任何内容。
但是,Integer已经覆盖了toString()
方法,该方法将显示数字。
public String toString() {
return String.valueOf(value);
}
所以我相信可能与Youkit如何显示Java对象有关
答案 1 :(得分:1)
YourKit可能允许您自定义其输出,但是您无法在Java中覆盖公共最终方法,尤其是对于核心API类(如java.lang.Integer)。
答案 2 :(得分:0)
Integer类是最终的。因此,您不能重载它,因为您只能通过创建一个继承父级的类来重载方法。
请参阅http://www.roseindia.net/javatutorials/final_methods.shtml