Java — используйте метод getService, у которого есть Class<T> для параметра

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

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

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

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

obj.getService(MyService.класс); Пропустите тип класса, как это.

AssenKhan 22.05.2019 14:50
Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
2
1
244
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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
        }

    }
}

Для ServiceInterface (или MyService) не обязательно иметь метод getService. Этот метод является просто методом в каком-то другом классе.

Klitos Kyriacou 22.05.2019 15:27

Хорошо, я удалил метод. А вот так можно назвать метод getService(...).

heiwil 22.05.2019 15:34

Другие вопросы по теме