构造函数参数通过Java反射

use*_*359 2 java reflection parameters constructor types

我在Java中使用Reflection.我可以请一些帮助来获取构造函数参数名称和值吗?

这是我的代码:

  public String getConstructors(Class aClass)
  {
  StringBuilder ClassConstructors = new StringBuilder();
  Constructor[] Constructors = aClass.getConstructors();
  String separator = System.getProperty( "line.separator" );
  for (Constructor c: Constructors)
  {
      boolean isPublic = Modifier.isPublic(c.getModifiers());
      Class[] parameterTypes = c.getParameterTypes();
      for (Class pt : parameterTypes)
      {
          System.out.println(pt.getName());
          //Field[] Fields = pt.getDeclaredFields();
          //for (Field f : Fields) 
          //{
              //System.out.println(f.getType());
          //}
      }
  }
  return ClassConstructors.toString();
Run Code Online (Sandbox Code Playgroud)

}

我正在测试的构造函数具有以下参数:

String Name, int Diameter
Run Code Online (Sandbox Code Playgroud)

System.out.println(pt.getName());行代码正在打印出以下几点:

java.lang.String
int
Run Code Online (Sandbox Code Playgroud)

是否可以获取每个参数的类型和名称?

NPE*_*NPE 6

您已经拥有类型,并且无法获取名称(因为它们不会作为字节码的一部分保留).

  • @user2023359:方法名称——是的。参数名称——不。 (2认同)