使用Reflection查找方法是否重载

时间:2013-03-08 11:15:04

标签: java reflection overloading

关于此问题有类似的question,但在答案中使用了参数类型。

我的问题是,有一个类应该做什么来找出使用反射返回的方法是否过载?

可能的方法是: 1)循环再次找到相同的方法

    List<Method> overloaded = new ArrayList<Method>();
    Method[] declaredMethods = A.class.getDeclaredMethods();

    for(int i = 0; i < declaredMethods.length; i++){
        for(int j = (i + 1); j < declaredMethods.length; j++){
            if(declaredMethods[j].getName().equals(declaredMethods[i].getName())){
                overloaded.add(declaredMethods[i]);
            }
        }
    }

    System.out.println(overloaded);

有没有办法找出比这更好的算法复杂度的重载方法? 某些库是否提供相同的功能?

1 个答案:

答案 0 :(得分:2)

您可以使用Set。如果add()操作返回false,则方法名称已在集合中 Java Reflection没有方法来确定方法是否过载。

相关问题