2012-02-16 13 views
1

プラグインを簡単にカスタマイズできるように、他のプラグインのメソッドをプラグインのメソッドに置き換えるMinecraftプラグインを作りたいと思います。別のクラスのメソッドを置き換えます

あるクラスのメソッドを置き換える方法はありますか。しかし、@overrideを使うのと同じように、元のメソッドもオーバーライドします。

+0

BCELはどうですか? –

答えて

0

AspectJのようなアスペクト指向のフレームワークで、オーバーライドするクラスのメソッド呼び出しをアドバイスし、新しいメソッドを呼び出すことでこれを行うことができます。

+0

どうすればそれをやりますか?私はJavaの中間レベルです。私はまだ学んでいます。 :/ – CharDev

+0

うん、もしあなたが中級レベルであれば、少し面倒かもしれない。私はサンプルを拾うことができるかどうかを見ます。その間、他の解決策がある可能性があるため、問題をより詳細に記述することができます。 – Perception

+0

基本的には、プラグインを直接変更することなく、別のクラス/ jar /プラグインのメソッドにコードを挿入したいだけです。私は基本的には最初のプラグインをロードしてから2番目のプラグインをロードし、2番目のプラグインのメソッドの1つが最初のプラグインのメソッドを "オーバーラップ"させたいだけです。最初のプラグインのメソッドが呼び出されると、代わりに2番目のプラグインのメソッドが使用されます。私はできるだけわかりやすいようにしようとしましたが、私がまだ明確でない場合、私はもっと説明することができます。 :p – CharDev

0

自分で置き換える方法を変更する方法はありません。

Javaリフレクションを使用して、変更するインスタンスを置き換えることができます。しかし、あなたは直接反映することなくメソッドを変更することはできません。

私はこれをどういう意味ですか?クラスの1つをオーバーライドし、それを保持するファイルの元のインスタンスを置き換えることです。ここではその

を行うとき

は注意があなたはそれがgoogleもさらにできる反射here

のために良いチュートリアルです。

注意してください。この種の交換はちょっとハッキリです。それはバケットではそうすることをお勧めしません。特にbukkitコードです。

関連する問題