[英]importing java classes in matlab classdef
我有一個使用classdef定義的matlab類。
我正在為一些java東西創建一個包裝器,需要導入幾個類。
我無法弄清楚導入這些類的位置,到目前為止我可以根據需要在每個方法中導入它們......這很痛苦。
有任何想法嗎?
是的,您需要將它們導入到每個方法中,這很痛苦。
一個小測試確認您需要在每個方法中重復導入列表:
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
這兩個答案都不正確(不再?)。 您可以將導入的類分配給類對象的屬性,並在不重新導入的情況下訪問它們。 以下代碼工作正常(在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.