java - Matlab/Java API 回调

标签 java matlab anonymous-class

我正在设计一个 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 中的匿名内部类吗?我可以声明一个 Matlab classdef 来扩展接口(interface) Predicate (这可以处理 Java 通用版本)吗?

最佳答案

这听起来像是一个棘手的问题。我仍在运行 R2006b,因此这可能已发生变化,但 MATLAB 似乎不会将函数句柄(包括匿名函数)和结构转换为 Java 对象。我不知道 MATLAB 自定义类,因为语法已更改。字符串、数组和元胞数组 will translate properly 。他们根本不评论实现接口(interface)。 (:p:p:p嘘声)

编辑:刚刚在 Matlab Central 上找到此页面,它讨论了一些未记录的接口(interface)。

关于java - Matlab/Java API 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/780981/

相关文章:

java - 如何将缺少的 Android javadoc 添加到 Eclipse?

Java 控制台重新启动

java - 在 shell 脚本中嵌入可执行二进制文件

python - 使用 octave 和 python 生成的图像的不同文件大小

matlab - 对于向量中的每个元素,将前 n 个元素相加

matlab - 改进 MATLAB 矩阵构造代码 : Or, 代码 Vectorization for beginners

java - 随着 API 的发展,处理 "int enum"模式与 Java 枚举共存的最佳方法是什么?

java - 从匿名内部类内部返回其包含的方法的数据

java - groovy中的匿名内部类

c# - 创建一个匿名对象,该对象必须在 Key 名称中包含点并将其放入另一个匿名对象中