Я знаю, что в статических методах нельзя использовать ключевое слово "this".
Теперь я также знаю, что если я хочу вызвать метод из этого класса, в котором я сейчас, я могу использовать имя класса,
Пример: Main.someStaticMethod();
Теперь, если я хочу использовать этот класс (то же, что и в примере выше) в параметре, как бы я это сделал?
Main.someStaticMethodWithParam(Main);
Это не работает, так как среда IDE считает, что main является параметром и, следовательно, просто появляется ошибка: неопределенная переменная.
Вы должны передать экземпляр класса вашему статическому методу:
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
Class<?>
качестве определения параметра, и вы можете вызвать его с помощьюMain.class
.