JSR-299 仕様では、§3.1 で次のように述べています。
マネージド Bean クラスがジェネリック型の場合、スコープ @Dependent が必要です。パラメーター化された Bean クラスを持つマネージド Bean が @Dependent 以外のスコープを宣言する場合、コンテナーは自動的に問題を検出し、定義エラーとして扱います。
これを行うことができないという事実上の意味:
@Named
@SessionScoped or @RequestScoped or similar
public class MyProducer<T> {...}
この決定の技術的な理由は何ですか?
ひょっとして CDI の今後のバージョンで修正されるのでしょうか?
これに対処/回避するためのベストプラクティスはありますか?
ありがとうございました
編集- 私がよく使用できる回避策は、必要なスコープを持つ Bean にジェネリック POJO Bean を注入することです。多くの場合、常にではありません。