我刚刚发现从 Matlab 调用 Java 时
object.method(arg1,...,argn)
相当于
method(object, arg1,...,argn)
这里的问题是我也有一个method.m
从 Java 到 Matlab 的翻译(例如转换String[]
为字符串单元格)。我的method.m
样子
function result = method(object, arg1,...argn)
intermediate = object.method(arg1,...argn);
result = translate(intermediate);
发生的事情是当我调用时method(object, arg1,...,argn)
,它会直接调用 Java,而不是使用我的method.m
修复很简单,只是不要对我的 Java 方法和我的.m
文件使用相同的方法名称。 但是还有其他方法吗?我怎么知道在给定相同名称的情况下会调用哪个方法?有没有办法确保我调用method.m
而不是 Java 方法? 它很容易确保对 Java 方法的调用,只需使用object.method
语法即可。
作为旁注,同样愚蠢的是.m
编辑器链接到method.m
调用method(object, arg1,...,argn)
时,而当它调试时它调用Java方法。