2011-10-17 2 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())로 호출 할 수 있습니다. 내가 정확히 기억한다면 첫 번째 것이 항상해야 할 일을하는 것은 아니지만 스스로 테스트해야 할 것입니다.

누군가가 더 나은/멋진/다른 해결책을 가지고 있다면, 나는 그 것을 듣는 것에 매우 흥미가 있습니다.

관련 문제