1

永続オブジェクト:

@Entity
public class PersistentModelObject{
  ...
}

次のようなものが必要です:

interface GenericDao<T annotated_with Entity>{
  //crud
}

または、何らかの方法でシミュレートできますか (拡張、実装など)。

編集:私の質問を理解している人が、理解できるレベルに編集してください。

4

2 に答える 2

1

ジェネリックスを介してそのようなアノテーションを使用できるとは思いませんが、java.lang.Class java.lang.reflect.Field isAnnotationPresent(YourAnnotation.class)を使用して、クラスに特定のアノテーションが付けられているかどうかを確認できます。

より良いアプローチは、マーカーインターフェイスを使用することかもしれませんか?何かのようなもの:

public class PersistentModelObject implements MyPersistableType{
     ...
}

interface MyPersistableType {} //marker interface

次に、次のように使用できます。

interface GenericDao<T extends MyPersistableType>{
  //crud
}

しかし、繰り返しになりますが、それはあなたが何を解決しようとしているのかによります。

于 2012-07-18T14:44:24.927 に答える
1

この制限は、リフレクションを使用して実行時にのみ確認できます。

于 2012-07-18T14:45:32.240 に答える