Java - 使用以 Class<T> 作为参数的 getService 方法

标签 java generics

我有这种方法来获取我的服务

public <T extends ServiceInterface> T getService(Class<T> aServiceClass);

我想用此方法实例化类“MyService”,该类扩展到 ServiceInterface。

如何做到这一点?我应该创建一个 new MyService 对象将其作为参数传递吗?但如果我这样做,获取服务方法将没有用处。

最佳答案

如果我理解你的问题,你想创建一个类 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
        }

    }
}

关于Java - 使用以 Class<T> 作为参数的 getService 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56257133/

相关文章:

java - java如何确定在类型删除过程中插入 "type cast"的位置

基于接口(interface)设计的C#泛型方法

C++,实例化一个通用节点,使用模板存储一个对象的实例

java - 将自定义 AuthenticationProcessingFilter 与 <form-login> 结合使用(自动配置 ="true")

java - 如何在 play 2.1 RC2 中包含 native 库 (JNI)?

swift - 具有关联类型和工厂模式的协议(protocol)?

swift - 快速覆盖通用函数错误

来自不同实例的 Java 保护方法访问

java - 我如何模拟服务以抛出异常返回列表的方法?

java - 重做二十一点游戏