метод, который принимает класс и экземпляр того же класса, иначе ошибка времени компиляции - PullRequest
0 голосов
/ 19 апреля 2019

метод, который принимает класс и экземпляр того же класса, иначе ошибка времени компиляции.

что-то вроде

public void someMethod(Class classType, ClassType instanse )

например.

someMethod(String.class, "a instance of class") ==> compile ok
someMethod(String.class, new Integer(1)) ==> compile error

Ответы [ 2 ]

2 голосов
/ 19 апреля 2019

Вы можете сделать:

public <T> void foo(Class<T> classVar, T instance) {
    //....
}

А затем назовите его с:

foo(String.class, "An instance!");      //Compiles
foo(String.class, new Integer(0));      //The method foo(Class<T>, T) is not applicable for the arguments (Class<String>, Integer)
foo(Integer.class, new Integer(0));     //Compiles
0 голосов
/ 19 апреля 2019

найти решение так:

public class GenericDemo<E> {
    public static void main(String[] args) {
        new GenericDemo<String>().classDemo(String.class, "abc");
        # new GenericDemo<String>().classDemo(String.class, new Integer(2)); # give compile time error
    }

    public void classDemo(Class<? extends  E> clazz, E e){

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