Java - используйте метод getService, который имеет класс <T>для параметра - PullRequest
2 голосов
/ 22 мая 2019

У меня есть этот способ, чтобы получить мои услуги

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

Я хотел бы создать экземпляр класса "MyService", который распространяется на ServiceInterface с помощью этого метода.

Как это сделать? я должен сделать объект new MyService, чтобы передать его в качестве параметра? но если я сделаю это, метод get service будет бесполезен.

1 Ответ

1 голос
/ 22 мая 2019

Если я понимаю ваш вопрос, вы хотите создать класс 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
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...