2011-02-10 11 views
3

Scalaの@BeanPropertyが変更イベントを生成することに関するthis questionのフォローアップとして、いくつかのカスタム注釈(@Propertyなど)を持つvarフィールドに注釈を付ける動作を完全に実装するにはプロパティ変更イベントを発生させるために必要なコードそれを行う唯一の方法は、コンパイラのプラグインを書くことです。Scalaのフィールドとプロパティの変更イベントについて

もっと一般的には、Scalaのコンパイラでアノテーションを処理する標準的な方法(Javaのようなもの)がありますか?

答えて

2

これは、Javaの場合と同様に、おそらくcglibなどを使用してプロキシで行うことができます。コンパイラプラグインでもこれを行うことができます(あなたが正しいと言っているように)。しかし、汎用ライブラリよりも少ないものを書くのであれば、ちょっと残念です。

ゲッターとセッターのメソッドを手動で手作業で書くことで、これらのイベントを発生させることができます。コードをきれいに保つことが心配な場合は、いつでもそれらを特性に移動できます。問題にわずかに異なるアプローチを


、Naftoli Gugenhemは、官能性反応プログラミング、観察可能なプロパティのイベント駆動型モデルよりも間違いなく優れたパラダイムを支援する"reactive" library on GitHubを持っています。

ObservableBuffer classは、探し始めるのに適しています。

+0

ありがとう、素敵なリンク!ビルトインのObservableBufferミックスイン特性もあるようです:http://www.scala-lang.org/api/current/scala/collection/mutable/ObservableBuffer.html –

関連する問題