java - 静的メソッドを呼び出す前にデフォルトでコードを呼び出す方法は?
淡淡烟草味
淡淡烟草味 2017-06-12 09:25:34
0
8
854

これで、外部呼び出し専用の静的メソッドを含むツール クラスができました。
これらの静的メソッドを呼び出す前に、デフォルトのパラメーターを設定するメソッドまたはコード ブロックが呼び出されるようにしたいと考えています。
これは静的コード ブロックの追加に似ていますが、静的コード ブロックは静的メソッドが呼び出されるたびに実行されるのではなく、クラスの初期化時に 1 回だけ実行されるため、私の要件を満たしていません。

基本的な解決策は、このツール クラスに静的メソッドを追加し、その中で必要な設定を行うことですが、この場合、他のすべての静的メソッドにこのメソッドを呼び出すステートメントを追加する必要があります。静的メソッドは既に 30 を超えており、今後もさらに増える予定なので、解決方法があるかどうかを怠惰に尋ねたいと思います。

えーっと。 。補足説明しますと、私のプロジェクトフレームワークはspring mvcをベースにしていますが、コメント欄のAOPを読んでBaiduにアクセスしたところ、要件を満たせる可能性があることが分かり、現在検討中です。
純粋な Java コードだけであれば、考えてもこのニーズを解決するのは難しいでしょう。

淡淡烟草味
淡淡烟草味

全員に返信(8)
伊谢尔伦

....SFのバージンアンサーをあげます
考えないでください、いいえ...

いいねを押す +0
左手右手慢动作

質問にどう答えればいいのか本当に分かりません

いいねを押す +0
typecho

AOP

いいねを押す +0
大家讲道理

私のSF処女の答えもあなたに与えられています、解決策を変えましょう

いいねを押す +0
扔个三星炸死你

staticは使わないほうがいい
最初からシングルトンなら
初期化できる

静的はクラスのロード時に実行されるブロックを定義できますが、
一般的には適用されません、

いいねを押す +0
滿天的星座

派生クラスを使用して実装することもできますが、面倒になるだけであり、主題の利便性と速度の目標を満たしていません。
さまざまなメソッドと比較して、各静的メソッドにコード行を追加する方が高速です。
質問をコピーして貼り付けるだけですぐに完了します。

いいねを押す +0
过去多啦不再A梦

正規表現を使用して各メソッドの先頭を照合し、必要なメソッドを挿入します

いいねを押す +0
三叔

メソッドのパラメータにコールバックを追加するだけです。たとえば、最初は次のように記述されました: public static void doSomeThing(Object args1)
現在は次のように記述されています

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!