Java 从构造函数中通过反射提取参数类型

Java 从构造函数中通过反射提取参数类型,java,reflection,Java,Reflection,我试图使用getParameterTypes方法从java.lang.reflect.Constructor对象中提取参数类型 构造函数如下所示: public SearchParameters(boolean doStaticBoosting, boolean doRewrites, boolean doCatalogsFacet, long userId, Filter catalogsFilter, boolean doCatalo

我试图使用getParameterTypes方法从java.lang.reflect.Constructor对象中提取参数类型

构造函数如下所示:

 public SearchParameters(boolean doStaticBoosting, boolean doRewrites, boolean doCatalogsFacet, long userId,
                            Filter catalogsFilter, boolean doCatalogsFilterTypeFacet, boolean doSocialBoosting,
                            long[] categoryFilteringId)
现在,当我调用此方法时,我得到以下参数类型:

正如您所看到的,最后一个类参数是非常混乱的,定义为

类别[J]

事实上,我希望它是一个长[]类。我需要稍后重建此对象,当然,我不能仅根据我获得的参数信息进行重建。

这是长[]类的名称。请尝试以下操作:

    long[] longs = {1L, 2L};
    System.out.println("Name is: " + longs.getClass().getName());
这张照片是:

Name is: [J
您可以从长[]类的名称。

中获取所有基元数组类的名称。请尝试以下操作:

    long[] longs = {1L, 2L};
    System.out.println("Name is: " + longs.getClass().getName());
这张照片是:

Name is: [J

您可以从.

中获取所有基本数组类的名称,这一点都不混乱。这只是long[]的字符串表示形式。类:


除非您真的需要以某种方式保留字符串表示形式,否则您应该将值作为一个类保留下来,一切都应该很好。

这一点都不混乱。这只是long[]的字符串表示形式。类:

除非您真的需要以某种方式保留字符串表示形式,否则您应该将值作为一个类保留下来,一切都应该很好。

Class[J是long[].Class的名称。请签出

此外,您可以使用此名称创建long[].class的实例,请参阅:

class[J是long[].class的名称。请签出

此外,您还可以使用此名称创建long[]类的实例,请参见: