我正在设计一个 API(在 Java 中)并希望用户从 Matlab 访问 API。问题是我希望 API 提供如下功能:
javaApi.waitUntilPredicateIsTrue(Predicate<JavaObj> test);
我的 API(在后台)获取Java Obj
(通过某种机制,例如轮询)的实例。我希望此 API 方法阻塞,直到其中一个实例传递Predicate
给true
. 如果我从 Java 调用这个 API,我会这样做:
javaApi.waitUntilPredicateIsTrue(new Predicate<JavaObj>() {
public boolean evaluate(JavaObj jo) {
return "READY".equals(jo.getState());
}
});
你明白了。
如何从 Matlab 中调用它?我可以使用 Matlab 中的匿名内部类吗?我可以声明一个classdef
扩展接口的 Matlab Predicate
(这可以处理 Java 通用版本)吗?