Следует отметить две вещи:
1) Даже если внутренний класс «a» объявлен как статический, метод b(Class g)
не является статическим. Таким образом, чтобы получить доступ к методу b (Class g) класса 'a', вам все равно необходимо создать экземпляр 'a', т.е.
a a1 = new a();
a1.b(SomeClass.class);
Важно. Объявление статического класса не делает методы этого класса статичными.
2) При вызове метода b(Class g)
необходимо передать аргумент Class. Вызов b();
без аргумента приведет к ошибке.
Если вы хотите вызвать b(Class g)
без создания экземпляра класса 'a', пометьте метод b(Class g)
как статический. т.е.
public static class a{
static public void b(Class g){
....
}
}
Чтобы лучше понять статический вложенный класс, прочитайте this