我有一个类,它有多个子类,每个子类都实现自己的方法。其中一些子类具有我需要调用的通用方法。 java中有没有办法知道对象是否有方法(不使用instanceof
)?
最佳答案
这可能表明存在设计缺陷,但您始终可以使用反射来检查方法是否存在:
public static boolean hasMethod(Object obj, String methodName) {
return Arrays.stream(obj.getClass().getMethods())
.anyMatch(m -> m.getName().equals(methodName));
}
当然,这也可以进行改进以包含方法的签名,但基本思想保持不变。
关于java - 有没有办法在 Java 运行时检查对象是否具有特定方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37735523/