假设我们有以下接口:
public interface MyInterface {
default void defaultMethod() {
System.out.println("Default method");
}
void abstractMethod();
}
可以通过反射获取默认方法并调用它:
import java.lang.reflect.Method;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
Class<MyInterface> clazz = MyInterface.class;
Method[] methods = clazz.getDeclaredMethods();
Arrays.stream(methods)
.filter(Method::isDefault)
.forEach(method -> {
try {
method.invoke(new MyInterface() {}, null);
} catch (Exception e) {
System.err.println("Error invoking default method: " + e);
}
});
}
}
非常感谢,不过这个问题我已经解决了