Язык Java не предоставляет никаких высокоуровневых конструкций, которые позволят вам изменять конструкторы суперкласса без изменения самого кода класса.
Тем не менее, есть альтернативы.В основном, вы можете использовать cglib , чтобы «внедрить» байт-код в библиотеку и создать свои собственные конструкторы (с помощью нескольких продвинутых методов).
Это абсолютно , а не рекомендуется длябольшинство задач кодирования и лучшее решение вашей проблемы (при условии, что вы не делаете что-то нетривиальное), это просто создание подкласса этого класса:
class SomeName {
public SomeName(int variable) {
...
}
}
class OtherName extends SomeName {
public OtherName(float otherVariable) {
this(*DEFAULT*, otherVariable);
}
public OtherName(int variable, float otherVariable) {
super(variable);
...
}
}