2011-10-17 18 views
6

Tengo un archivo de función llamada getFeatures.m que se parece a:Importación misma clase a nivel mundial

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 

Como se puede ver, ambas funciones importar la biblioteca XPath, ya que tengo una gran cantidad de funciones que necesita importar que clase cómo ¿Puedo hacer esto una sola vez?

+2

¿Por qué no excluyes la importación de las funciones? – cyborg

Respuesta

2

He tropezado con el mismo problema. Mi solución personal (¡y fea!) Para esto es definir un método que realice las importaciones; aún tendrá que llamar a esa función, pero al menos agrupa las importaciones en un solo lugar, aunque dentro de las cadenas.

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

Esto puede ser llamado ya sea como initJava() o eval(initJava()). Si mal no recuerdo, el primero no siempre hace lo que se supone que debe hacer, pero tendrá que probarlo usted mismo.

Si alguien tiene una mejor/mejor/otra solución, estoy muy interesado en escuchar eso.

Cuestiones relacionadas