Как использовать класс в качестве параметра в статическом методе

1

Я знаю, что в статических методах нельзя использовать ключевое слово "this".

Теперь я также знаю, что если я хочу вызвать метод из этого класса, в котором я сейчас, я могу использовать имя класса,

Пример: Main.someStaticMethod();

Теперь, если я хочу использовать этот класс (то же, что и в примере выше) в параметре, как бы я это сделал?

Main.someStaticMethodWithParam(Main);

Это не работает, так как среда IDE считает, что main является параметром и, следовательно, просто появляется ошибка: неопределенная переменная.

  • 0
    Почему вы хотите это сделать?
  • 3
    Используйте Class<?> качестве определения параметра, и вы можете вызвать его с помощью Main.class .
Показать ещё 3 комментария
Теги:
static
reference
parameters

1 ответ

1

Вы должны передать экземпляр класса вашему статическому методу:

public class Main {
    private int x;
    public static <T> void printClassName(Class<T> clazz) {
        System.out.println(clazz.getName());
    }
    public static void main() {
        printClassName(Main.class);
    }
}

Печать (если класс не находится внутри пакета):

Main

Ещё вопросы

Сообщество Overcoder
Наверх
Меню