【发布时间】:2011-05-11 04:43:49
【问题描述】:
我正在编写这个查询服务,它假设可以使用几个预定义的类。然而,在我看来,在使用这个服务类时,我需要传递类的类型和它自己的类对象,这似乎是多余的。例如,要查询“Contact”对象,我需要同时提供 Contact.class 和 Contact.class,如下所示:
lookupService = new MyLookupServiceImpl<Contact>(Contact.class);
在这种情况下,有没有办法在不传入“Contact.class”的情况下初始化Class? 服务类如下所示:
public class MyLookupServiceImpl<T> {
private Class<T> cls;
public MyLookupServiceImpl(Class<T> clz){
this.cls = clz;
}
public T queryObject(String sql) {
try {
QueryResult result = ConnectionFactory.getConnection().query(sql);
if(result.getSize()>0){
T obj=null;
MyObject sObj = result.getRecords()[0];
MyObjectBuilder<T> ob = new MyObjectBuilder<T>(cls);
obj = ob.buildORMObject(sObj);
return obj;
}
} catch (ConnectionException e) {
logger.warn(e.toString());
}
return null;
}
}
任何建议都将不胜感激。
谢谢,
【问题讨论】:
标签: java generics reflection