string _str;
public String toString() {
return _str;
}
}
Код класса я менять не могу
Как в рантайме заменить реализацию toString на мою?
Я хочу чтобы оно делало, скажем
return _str + "!";
Зачем -- не спрашивайте, научный интерес, эксперементирую
Отнаследоваться и переопределить toString...
Я хочу изменить класс Foo, чтобы на его инстансах сменился метод toString
https://www.baeldung.com/java-instrumentation например вот так (это не лучший туториал, но для начала сойдёт)
Спасибо! Попробую
А я смогу таким образом еще и приватный конструктор класса изменить?... (Я в своём toString хочу делать проверку, которую можно вычислить один раз на создании инстанса, нет смысла вычислять ее каждый раз при вызове toString. А у класса есть паблик метод вызывающий приватный конструктор)
Всё что угодно сможешь изменить
Гугли java bytecode transformation
Обсуждают сегодня