全局导入同一个类

BAD*_*EED 6 java import matlab

我有一个名为的函数文件getFeatures.m,如下所示:

function [features] getFeatures()
  % Import the XPath classes
  import javax.xml.xpath.*
    % other code  
end
function [name] = getName()
  % Import the XPath classes
  import javax.xml.xpath.*
    % other code
end
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这两个函数都导入了xpath库,因为我有很多需要导入该类的函数,我怎么能这样做一次?

Ego*_*gon 2

我偶然发现了同样的问题。我个人的(而且丑陋的!)解决方法是定义一个执行导入的方法;您仍然需要调用该函数,但至少它将导入分组在一个位置,尽管是在字符串内部。

function cmd  = initJava()
    cmd = 'import package.*';
    if nargout == 0
        warning('off','MATLAB:Java:DuplicateClass');
        evalin('caller',cmd);
        warning('on','MATLAB:Java:DuplicateClass');
    end;
end
Run Code Online (Sandbox Code Playgroud)

这可以称为 asinitJava()eval(initJava())。如果我没记错的话,第一个并不总是做它应该做的事情,但你必须自己测试一下。

如果有人有更好/更好/其他的解决方案,我很想听听。