1

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

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

可能的方法可以是: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);

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

4

1 回答 1

2

你可以使用一个Set. 如果add()操作返回false方法名称已经在集合中。
Java 反射没有方法来判断一个方法是否被重载。

于 2013-03-08T11:21:29.150 回答