私はJPA2を使用しており、次の方法があります。
private static void wipeTable(EntityManager em, Class<? extends Table> klass) {
String tableName = klass.getAnnotation(Table.class).name();
...
}
パラメータに問題があると思いClass<? extends Table>
ます。私は次のようなエンティティクラスを持っています:
@Entity
@Table(name = "collections")
public class Collection extends MyOtherClass implements Serializable { ... }
うまくやれるCollection.class.getAnnotation(Table.class).name()
ので、パラメータとして渡せるようにしたいと思いCollection
ます。ただし、呼び出すだけwipeTable(em, Collection.class);
で次のエラーが発生します。
タイプFetchDataのメソッドwipeTable(EntityManager、Class <?extends Table>)は、引数(EntityManager、Class <Collection>)には適用できません。
Class klass
ジェネリックスを使用せずに、パラメーターをであるようにしてみました。
private static void wipeTable(EntityManager em, Class klass) {
String tableName = ((Table)klass.getAnnotation(Table.class)).name();
これにより、IDEは次のことを提案しました。
クラスはrawタイプです。ジェネリック型クラスへの参照はパラメーター化する必要があります
私はJava1.5を使用しています。Class
「注釈付きの型のパラメータを教えてください」と言う方法はあります@Table
か?