2011-10-17 45 views
6

我有一個函數文件名爲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庫,因爲我有很多的功能需要進口該類如何我可以一次做這個嗎?

+2

爲什麼你不把功能導入? – cyborg

回答

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 

這可以被稱爲或者作爲initJava()eval(initJava())。如果我沒有記錯,第一個並不總是做它應該做的事情,但是你必須自己去測試。

如果有人有一個更好/更好/其他解決方案,我非常有興趣聽到一個。