如何过滤方法与java反射



我想从类中获得所有方法,但不包括继承的方法,如:wait, toString, hash等。

是否有一个内置的方式来做到这一点,或者我需要定义一个黑名单,并检查方法名称对它吗?

可以忽略

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

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

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

for(Method method: clazz.getDeclaredMethods()) {

使用MyClass.getDeclaredMethods()

crazz . getdeclaredmethods()将交付由当前类定义的方法(从而有效地排除继承的方法)。然而,典型的模式是沿着类层次结构往上走并排除来自Object

您可以使用集合共享。

你只需要声明一个谓词,然后使用:

CollectionUtils.filter(collection, predicate);

集合是方法的集合。谓词是接受列表

中的元素的逻辑函数。

相关内容

  • 没有找到相关文章

最新更新