7

アノテーション内でクラスの単純な名前を使用することは可能ですか? 私の目的は、クラスを含む JNDI 名を使用して、インジェクションのコンパイル時の安全性を確保することです。

例(私がやりたいことの、これはコンパイル時に失敗します):

@EJB(mappedName = "java:module/" + MyService.class.getSimpleName())
private MyService myService;

class.getSimpleName() は実行時に解決されるようで、注釈では機能しません。どういうわけか定数として取得できますか?

4

1 に答える 1

0

あなたがそれを持っている方法は不可能です。これは、AOP テクニックを使用して行うことができます。しかし、

@EJB(mappedName = "java:module/" + MyService.class.getSimpleName())
private MyService myService;

このコードでは、「MyService」という値が 1 つしかないようです。動的に変化するわけではないのに、なぜ動的に評価したいのですか?

于 2013-08-19T11:37:28.553 に答える