我正在设计一个API(使用Java),希望用户能够从Matlab访问该API。问题是我希望API提供以下功能:
javaApi.waitUntilPredicateIsTrue(Predicate test); 我的API(在后台)获得了Java Obj实例(通过某种机制,例如
polling )。我希望此API方法能够阻塞,直到这些实例之一传递给Predicate评估为true 。如果我是从Java调用此API,则可以执行以下操作:
javaApi.waitUntilPredicateIsTrue(new Predicate() { public boolean evaluate(JavaObj jo) { return "READY".equals(jo.getState()); } }); 你明白了。
如何在Matlab中调用它?我可以使用Matlab中的匿名内部类吗?我可以声明一个扩展接口Predicate的Matlab classdef (这可以应付Java通用版本)吗?
回答:
这听起来像一个棘手的问题。我仍在运行R2006b,因此可能已更改,但是MATLAB似乎不会将函数句柄(包括匿名函数)和结构转换为Java对象。我不了解MATLAB自定义类,因为语法已更改。字符串,数组和单元格数组
将正确转换 。他们根本不评论实现接口。 (:p:p:p嘘)
编辑:刚刚在
Matlab Central上找到此页面,它讨论了一些未记录的接口。
更多&回答...