Могу ли я переопределить скрытый (но общедоступный) метод и вызвать его суперметод?

Существует закрытый API, который мне нужно переопределить, чтобы обойти причуду с Android WebView.

API-интерфейс скрыт, но общедоступен:

/**
 * ...
 *
 * @hide pending API council approval
 */
public boolean selectText() {
    ...
}

Поэтому я могу переопределить его, просто объявив его в моем собственном классе WebView, за исключением @Override:

public boolean selectText() {
    ...
}

Можно ли вызвать метод super из моего переопределения? Обычно я мог бы написать:

public boolean selectText() {
    return super.selectText();
}

Но метод скрыт, поэтому super.selectText()недоступен. Если я использую отражение:

public boolean selectText() {
    return (Boolean) WebView.class.getMethod("selectText").invoke(this, (Object[]) null);
}

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

Можно ли каким-либо образом переопределить этот метод и иметь возможность вызывать суперметод?

Спасибо!

11
задан cottonBallPaws 23 March 2012 в 18:04
поделиться