我有一个使用classdef定义的matlab类。
我正在为一些java东西创建一个包装器,需要导入几个类。
我无法弄清楚导入这些类的位置,到目前为止我可以根据需要在每个方法中导入它们......这很痛苦。
任何想法?
答案 0 :(得分:2)
是的,你需要将它们导入每种方法,这很痛苦。
答案 1 :(得分:1)
小测试确认您需要在每种方法中重复导入列表:
classdef MyClass < handle
properties
s
end
methods
function obj = MyClass()
import java.lang.String
obj.s = String('str');
end
function c = func(obj)
c = String('b'); %# error: undefined function 'String'
end
end
end
答案 2 :(得分:0)
两个答案都不正确(不再?)。您可以将导入的类分配给类对象的属性,并在不重新导入的情况下访问它们。以下代码工作正常(在Matlab 2016a中测试):
classdef moveAndClick < handle
properties (Access = private)
mouse;
leftClick;
end
methods
%% Constructor
function obj = moveAndClick()
import java.awt.Robot;
import java.awt.event.InputEvent;
obj.mouse = Robot;
obj.leftClick = InputEvent.BUTTON1_MASK;
end
%% Destructor
function delete (~)
end
function moveClick (obj, positionX, positionY)
% move mouse to requested position
obj.mouse.mouseMove(positionX, positionY);
% click on the current position
obj.mouse.mousePress(obj.leftClick);
obj.mouse.mouseRelease(obj.leftClick);
end
end
end