我正在使用 JPA 2 并具有以下方法:
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>)
我尝试只使用参数 be Class klass
,没有泛型:
private static void wipeTable(EntityManager em, Class klass) {
String tableName = ((Table)klass.getAnnotation(Table.class)).name();
这导致我的 IDE 建议:
类是原始类型。对泛型类的引用应该被参数化
我正在使用 Java 1.5。有没有办法说“给我一个Class
带注释的类型参数@Table
”?