How to get Object's toString()?

186
09 июля 2018, 07:10

Имеется класс BloodCell в очень большой и длинной иерархии классов общего назначения. Важно: все классы по своему определяют toString(). Исходный код классов-предков недоступен.

public class BloodCell /*...*/ {
    // много кода
    public String objToString() {
        return Object.super.toString(); // ALARM
    }
}
class Tester {
    public static void main(String[] args){
        var bc = new BloodCell();
        System.out.println(bc.objToString());
    }
}

Есть большое желание получить тот результат, что выдаётся корневым toString(). Т.е. хочу увидеть адрес объекта в логическом адресном пространстве.

Вопрос: как это сделать?

Замечание: строка с комментарием "ALARM" выдуманная. Хочется какой-то аналог такого действия.

Answer 1
Integer.toHexString(System.identityHashCode(bc));

Важно понимать, что упомянутый в документации internal address - это не адрес расположения объекта в памяти, это почти случайное число, а расположение объекта в памяти постоянно меняется, при каждой сборке мусора.

READ ALSO
Генерация swagger yml в springfox

Генерация swagger yml в springfox

Как из springfox-swagger2 получить yml файл с описанием rest api?

177
В файл записывается только текст до пробела java

В файл записывается только текст до пробела java

Есть вот такая функция, которая вызывается в главном методе, нужно чтобы она записывала в конец существующего файла некоторый текст, но она...

167
Что делать с этой ошибкой? (Android Studio)

Что делать с этой ошибкой? (Android Studio)

// Top-level build file where you can add configuration options common to all sub-projects/modules

212
Сравнение String

Сравнение String

Как сделать сравнение строк

207