Java反射:我的Collection包含什么?

前端之家收集整理的这篇文章主要介绍了Java反射:我的Collection包含什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在类中定义了一个方法

public void setCollection(Collection

在另一个班级

public void setCollection(Collection

(实际上,很多类似的课程)

所有都在具有相同超类的类中,并且我在支持类中有一个方法,我想调用方法并使用正确类类型的项设置它.现在,我可以通过这样做来设置收藏

Method setter = ...;
Class

但是,我如何确定此集合中的对象应该属于哪个类?

干杯

最佳答案
Method.getGenericParameterTypes();

返回参数接受的Types数组.复杂性从那里呈指数级增长.

在您的具体情况下,这将工作:

    Method m = Something.class.getMethod("setCollection",Collection.class);
    Class

但是那里存在很多潜在的问题,具体取决于参数的声明方式.如果它像你的例子一样简单,那很好.如果没有,那么在getGenericParameterTypes()方法和getActualTypeArguments()方法中都有一些类型需要考虑.它变得非常毛茸茸,非常快.

猜你在找的Java相关文章