繁体   English   中英

如果对象具有特定方法,是否有办法检查Java运行时?

[英]Is there a way to check in Java runtime if an object has a specific method?

我有一个类,它有多个子类,每个子类都实现自己的方法。 其中一些子类有我需要调用的常用方法。 有没有办法在java中知道对象是否有方法(不使用instanceof )?

这可能指向设计缺陷,但您可以始终使用反射来检查方法是否存在:

public static boolean hasMethod(Object obj, String methodName) {
    return Arrays.stream(obj.getClass().getMethods())
                 .anyMatch(m -> m.getName().equals(methodName));
}

当然,这可以改进以包括方法的签名,但基本思想保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM