2012-03-15 4 views
0

При профилировании моей java-программы через YourKit вашkit сообщил мне, где проблема;Как переопределить toString() конечного класса в java

enter image description here

Хотя моя программа мала, и я могу найти место, где проблема заключается, но я хочу, чтобы переопределить ToString() в Integer. Так что yourkit может распечатать его.

как я могу это сделать?

* У меня есть несколько способов сделать это. Например, если я на мониторе распределения вашего профилировщика yourkit, или я просто вызываю toString(), когда я инициализирую объект. Поэтому я могу сопоставить его с отчетом yourkit. Но я ищу хорошее решение.

+0

Является 'abcdefg', что он действительно сказал, или что-то вы только что сделал? Пожалуйста, опубликуйте полное, реальное сообщение об ошибке. –

+2

Вы не можете переопределить любой метод любого конечного класса. –

+1

Как говорили другие, окончательные классы не могут быть переопределены по определению. Однако 'Integer.toString()' не выводит то, что вы показываете, - выводит целочисленное значение в виде строки. –

ответ

1

YourKit может позволить вам настроить его вывод, но вы не можете переопределить общедоступные конечные методы в Java, особенно для основных классов API, таких как java.lang.Integer.

0

Класс Integer является окончательным. Поэтому вы не можете перегружать его, поскольку вы можете перегружать метод только путем создания класса, который наследуется от родителя.

см http://www.roseindia.net/javatutorials/final_methods.shtml

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); 
} 

Так что я считаю, что, вероятно, что-то делать с тем, как YourKit отображения объектов Java

+0

1+ для справки jls. – Vishrant

Смежные вопросы