我有这种获取服务的方法
public <T extends ServiceInterface> T getService(Class<T> aServiceClass);
我想使用此方法实例化扩展到ServiceInterface的类“ MyService”。
该怎么做?我应该制作一个new MyService
对象以将其作为参数传递吗?但是如果这样做,get服务方法将无用。
答案 0 :(得分:1)
如果我理解您的问题,那么您想创建一个扩展MyService
的类ServiceInterface
。而且您想通过方法getService(Class<T> aServiceClass>)
获得服务,对吗?看起来像这样(但是请将类拆分到不同的文件中):
package test;
public class Test2 {
public static void main(String[] args) {
MyService m = getService(MyService.class);
//m.someMethod(...);
}
public static <T extends ServiceInterface> T getService(Class<T> aServiceClass) {
return null; //??
}
//class MyService
public class MyService extends ServiceInterface{
//someMethods...
}
//class ServiceInterface
public class ServiceInterface {
public <T extends ServiceInterface> T getService(Class<T> aServiceClass) {
return null; //whatever the method is doing
}
}
}