4

トレイト(Smalltalkでは「トレイト」、Perlでは「ロール」)を紹介しました。慣れ親しんだ言語で、早く実験したいと思います。特性をサポートするJavaのライブラリまたは拡張機能はありますか?

AspectJとQi4Jはどちらもミックスインをサポートしていると聞きましたが、ミックスインは特性とは異なることも読みました。では、これらのライブラリの1つを特性に使用することもできますか?

または、Javaと完全な下位互換性のあるScalaはどうでしょうか?それは特性をサポートしていますか?

他に何か提案はありますか?

4

2 に答える 2

4

または、Javaと完全な下位互換性のあるScalaはどうでしょうか?それは特性をサポートしていますか?

はい、ScalaはTraitsを完全にサポートしています。JVMで動作させるには、いくつかの奇妙なフープを飛び越える必要がありますが、そこにあり、非常に強力です。

Scalaで実験を書くことができ、それは既存のJavaのものと相互運用します(ツールによって異なります)

于 2011-03-07T23:11:04.480 に答える
2

Qi4j 2.0(作業中)は強力なScalaサポートを追加し、ScalaトレイトをQi4jミックスインおよび懸念事項(AOPの「アドバイスに関する」同等物)として役立つように取り組んでいます。Scalaトレイトは、所有するクラスのプロキシインスタンスを最初の引数(Cでの古典的なC ++表現)として受け取る静的メソッドにコンパイルされます。Qi4jは、TraitをMixinとして接続し(つまり、メソッドをCompositeのパブリックインターフェイスで公開できます)、Traitで使用されるコンポジットの基になるStateHolderにバインドできるため、Traitには状態があるようです。 ..。。

FTR; Qi4j 2.0は、タイプのフットプリントも最小限に抑えており、Qi4jに依存しないタイプを以前よりも多く使用できるようになっています。

于 2011-09-07T03:17:37.210 に答える