... Обратите внимание, что конструкторы некоторых внутренних классов могут иметь неявно объявленный параметр в дополнение к явно объявленным.
Как говорится, я пытался использовать его для внутреннего класса с конструктором без параметров, и он дал мне конструктор с одним параметром (включающий класс, пример ниже). Есть ли простой способ получить только явные параметры?
Код: Выделить всё
import java.lang.reflect.*;
import java.util.*;
import java.util.stream.*;
public class TestInner{
public class Inner{}
public static void main(String[] args) throws ClassNotFoundException {
Class innerClass = Class.forName("TestInner$Inner");
Constructor[] constructors = innerClass.getConstructors();
String str = Arrays.stream(constructors).map(TestInner::stringifyConstructor).collect(Collectors.joining(", "));
System.out.println(str);
}
public static String stringifyConstructor(Constructor c){
return "("+Arrays.stream(c.getParameterTypes()).map(e->e.getName()).collect(Collectors.joining(", "))+")";
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... nner-class
Мобильная версия