Я разрабатываю API (на Java) и ожидаю, что пользователи получат доступ к API из Matlab. Проблема в том, что я хочу, чтобы API предоставил такую функциональность, как:
javaApi.waitUntilPredicateIsTrue(Predicate<JavaObj> test);
Мой API (в фоновом режиме) получает экземпляры Java Obj
(через некоторый механизм, например опрос ). Я хочу, чтобы этот метод API блокировался до тех пор, пока один из этих экземпляров при передаче в Predicate
не будет равен true
. Если бы я вызывал этот API из Java, я бы сделал:
javaApi.waitUntilPredicateIsTrue(new Predicate<JavaObj>() {
public boolean evaluate(JavaObj jo) {
return "READY".equals(jo.getState());
}
});
Вы поняли идею.
Как это можно вызвать из Matlab? Могу ли я использовать анонимные внутренние классы из Matlab? Могу ли я объявить Matlab classdef
, который расширяет интерфейс Predicate
(может ли это справиться с универсальной версией Java)?