未処理のメソッドを処理できるデフォルトまたはフォールバックのオーバーライド メソッドを定義する方法はありますか?
私がこれを尋ねる理由は、常に変更される可能性のある関数ライブラリ内のクラスをオーバーライドするクラスを作成したためです。クラスを正常にコンパイルするには、すべてのメソッドを定義してオーバーライドする必要がありますが、更新があるたびにクラスを再コーディングしたくありません。
書かれている内容の例を次に示します。
public class CommandSignsPlayerProxy implements Player {
private Player proxy;
private boolean silent;
public CommandSignsPlayerProxy(Player targetPlayer) {
this.proxy = targetPlayer;
}
public boolean isSilent() {
return silent;
}
public void setSilent(boolean silent) {
this.silent = silent;
}
@Override
public void abandonConversation(Conversation conversation, ConversationAbandonedEvent details) {
proxy.abandonConversation(conversation, details);
}
// This function is basically the only one that NEEDS overriding
@Override
public void sendMessage(String message) {
if (!silent)
proxy.sendMessage(message);
}
@Override
public void setFlySpeed(float arg0) throws IllegalArgumentException {
proxy.setFlySpeed(arg0);
}
}
実際のコードには、さらに 50 以上のオーバーライドされた関数があります。function_name()
でオーバーライドする自動ハンドラーを作成する方法はありますproxy.function_name()
か?