2011-10-17 8 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

私は同じ問題を偶然見つけました。私の個人的な(そして醜い!)回避策は、インポートを実行するメソッドを定義することです。それでも関数を呼び出す必要がありますが、少なくとも文字列の内部ではあるが、1つの場所でインポートをグループ化します。

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())として呼び出すことができます。私が正しく覚えていれば、最初のものが必ずしもそれを行うとは限りませんが、あなた自身でそれをテストしなければなりません。

誰かがより良い/より良い/その他の解決策を持っている場合、私はそのことを聞くことに非常に関心があります。

関連する問題