如何使用java反射过滤方法

Tom*_*mer 3 java reflection

我想从类中获取所有方法但排除继承的方法,例如:wait,toString,hash等.

是否有内置的方法来做或者我需要定义黑名单并检查方法名称吗?

Pet*_*rey 5

你可以忽略像这样的方法

for(Method method: clazz.getMethods()) {
    if(method.getDeclaringClass() == Object.class) continue;

}
Run Code Online (Sandbox Code Playgroud)

注意:这将包括在子类中重写的方法.

如果您不想要任何继承的方法,您可以使用

for(Method method: clazz.getDeclaredMethods()) {
Run Code Online (Sandbox Code Playgroud)