Импортировать тот же класс глобально - PullRequest
6 голосов
/ 17 октября 2011

У меня есть файл функций с именем 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

Как видите, обе функции импортируют библиотеку xpath, так как у меня есть много функций, которые должны импортировать этот класс, как я могу сделать это один раз?

1 Ответ

2 голосов
/ 17 октября 2011

Я наткнулся на ту же проблему. Мой личный (и некрасивый!) Обходной путь для этого - определение метода, который выполняет импорт; вам все равно придется вызывать эту функцию, но, по крайней мере, она группирует импорт в одном месте, хотя и внутри строк.

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

Это можно назвать initJava() или eval(initJava()). Если я правильно помню, первый не всегда делает то, что должен, но вам придется проверить это самостоятельно.

Если у кого-то есть лучшее / приятное / другое решение, мне очень интересно его услышать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...