Используйте методы внутри универсального типа - PullRequest
0 голосов
/ 28 сентября 2019

Рассмотрим этот класс:

public class A {
   public void method_a(){
       System.out.println("THIS IS IT");
 }
}

Я хочу использовать 'method_a' в другой функции, использующей универсальный тип, чтобы получить класс A. Например:

public class B {
    public void calling_this(){
        A = new A();
        method_b(A);
    }
    public <T> void method_b(T m){
        m.method_a();
    }
}

Я получаю ошибку "не могу найти символ "на m.method_a().Возможен ли этот метод или есть что-то похожее на него?

Ответы [ 2 ]

3 голосов
/ 28 сентября 2019

Определите ваш метод как

    public <T extends A> void method_b(T m){
        m.method_a();
    }

Когда требуется обобщение Javaвместо и есть ли минус переключения?

3 голосов
/ 28 сентября 2019

С помощью шаблонов вы можете установить некоторые ограничения

interface HasMethodA {
    void method_a();
}

...

class ... {

    <T extends HasMethodA> ... (..., T hasMethodA, ...) {
        ...
        hasMethodA.method_a();
        ...
    }

}

См. Параметры ограниченного типа

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