jd.*_*jd. 6 java generics ektorp
我试图用构造函数(来自Ektorp库)扩展以下类:
public class CouchDbRepositorySupport<T extends CouchDbDocument> implements GenericRepository<T> {
...
protected CouchDbRepositorySupport(Class<T> type, CouchDbConnector db) {
...
}
Run Code Online (Sandbox Code Playgroud)
这是我的实现:
public class OrderRepository extends CouchDbRepositorySupport<Order<MenuItem>> {
public OrderRepository(CouchDbConnector db) {
super(Order<MenuItem>.class, db);
Run Code Online (Sandbox Code Playgroud)
问题出在Order<MenuItem>.class
零件上.Java编译器告诉我:
Syntax error on token ">", void expected after this
Run Code Online (Sandbox Code Playgroud)
我试着用(Order<MenuItem>).class
,Order.class
并new Order<MenuItem>().getClass()
没有更好的运气.
我该怎么做才能检索泛型类的.class属性?
如果您更改类型以发布内部类型,则可以通过以下方式获取:
public class CouchDbRepositorySupport<C, T extends CouchDbRepositorySupport<C>> implements GenericRepository<T> {
...
protected CouchDbRepositorySupport(Class<C> type, CouchDbConnector db) {
...
}
public class OrderRepository extends CouchDbRepositorySupport<MenuItem, Order<MenuItem>> {
public OrderRepository(CouchDbConnector db) {
super(MenuItem.class, db);
Run Code Online (Sandbox Code Playgroud)
关于如何声明父类,您有几种选择;这只是一个例子。
免责声明:我在没有 IDE 的情况下手动完成了此操作,因此可能存在一些小的语法问题,但这个概念应该可行。
归档时间: |
|
查看次数: |
3415 次 |
最近记录: |