Если Java® метод возвращает примитивный тип данных, затем MATLAB® преобразует данные, как показано в таблице в примитивных типах возврата.
Если сигнатура метода Java задает возврат данные типа java.lang.Object
MATLAB преобразует возвращенный фактический тип, как показано в таблице в java.lang.Object Возврат Types.
MATLAB не преобразует другие объекты Java в типы MATLAB. Для получения информации об обработке этих данных смотрите Функции для преобразования объектов Java в типы MATLAB.
MATLAB преобразует примитивные данные, возвращенные из метода Java, в типы, которые лучше всего представляют данные, в язык MATLAB. В этой таблице показано, как MATLAB преобразует данные. Для некоторых типов Java MATLAB обрабатывает скаляр, и массив возвращается по-разному.
Тип возврата Java | Полученный тип MATLAB - Скаляр | Получившийся тип MATLAB - массив |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подпись для java.lang.String
метод toCharArray
является:
public char[] toCharArray()
Вызов метода на String
объект. MATLAB преобразует выход в char
массив.
str = java.lang.String('hello');
res = str.toCharArray'
res = 1×5 char array hello
java.lang.Object
Типы возвратаКогда объявляется метод Java для возврата данных типа java.lang.Object
MATLAB преобразует его значение в зависимости от фактического возвращенного типа. В этой таблице показано, как MATLAB преобразует данные.
Фактический тип Java | Полученный тип MATLAB - Скаляр |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Преобразование отсутствует, если возвращаемый аргумент является подклассом Object
или массив Object
. Объект остается объектом Java. Однако, если вы индексируете в возвращенную Object
массив, MATLAB преобразует значение согласно таблице. Для получения дополнительной информации смотрите Преобразование элементов объектного массива в типы MATLAB.
См. следующую подпись для getData
способ.
java.lang.Object getData()
Если getData
возвращает java.lang.Integer
объект, затем MATLAB преобразует значение в double
.
MATLAB преобразует данные объекта только возврата значения, если задана сигнатура метода java.lang.Object
. Если подпись задает любой другой тип объекта, MATLAB не преобразует значение. Для примера MATLAB преобразует возврат значение для этой сигнатуры метода:
java.lang.Object getData()
Но MATLAB не преобразует возврата значение для этого метода:
java.lang.String getData()
Чтобы преобразовать данные объекта Java в данные MATLAB, используйте функции MATLAB, как описано в следующих темах:
Чтобы преобразовать числовые типы Java в типы MATLAB, используйте числовую функцию MATLAB, подобную double
. Действия, предпринятые double
функция зависит от класса заданного объекта.
Если объект является образцом класса, производного от java.lang.Number
, затем MATLAB преобразует объект в MATLAB double
.
Если объект не является образцом числового класса, MATLAB проверяет определение класса на toDouble
способ. MATLAB вызывает этот метод для выполнения преобразования.
Если вы создаете свой собственный класс, то напишите toDouble
метод для определения собственного преобразования типов.
Примечание
Если класс объекта не выведен из java.lang.Number
и не реализует toDouble
метод, затем double
функция отображает сообщение об ошибке.
Преобразование java.lang.String
объекты и массивы в строки MATLAB или векторы символов, используйте MATLAB string
или char
функция.
Если объект, заданный в функции MATLAB, не является образцом java.lang.String
класс, затем MATLAB проверяет его определение класса на toString
или toChar
способ. Если вы создаете свой собственный класс, то напишите toString
или toChar
метод для задания преобразования строк.
Примечание
Если класс объекта не java.lang.String
и не реализует toChar
метод, затем char
функция отображает сообщение об ошибке.
Если класс Java задает имена полей, используйте struct
функция для преобразования данных объекта в структуру MATLAB.
Предположим, что вы вызываете метод Java, который возвращает java.awt.Polygon
объект. Класс определяет поля xpoints
и ypoints
. Чтобы запустить этот пример, создайте polygon
переменная.
polygon = java.awt.Polygon([14 42 98 124],[55 12 -2 62],4);
Преобразуйте объект в структуру и отобразите координаты x, y для третьей точки.
pstruct = struct(polygon)
pstruct = struct with fields: npoints: 4 xpoints: [4×1 int32] ypoints: [4×1 int32]
Если ваши методы Java возвращают различные типы данных, используйте cell
функция для преобразования данных в типы MATLAB. Элементы получившегося массива ячеек преобразуются в соответствии с таблицами Primitive Return Types и java.lang.Object Возврат Types.
Предположим, что вы вызываете методы Java, которые возвращают аргументы типа java.lang.Double
, java.awt.Point
, и java.lang.String
. Чтобы запустить этот пример, создайте переменные этих типов.
import java.lang.* java.awt.* % Create a Java array of double dblArray = javaArray('java.lang.Double',1,10); for m = 1:10 dblArray(1,m) = Double(m * 7); end % Create a Java array of points ptArray = javaArray('java.awt.Point',3); ptArray(1) = Point(7.1,22); ptArray(2) = Point(5.2,35); ptArray(3) = Point(3.1,49); % Create a Java array of strings strArray = javaArray('java.lang.String',2,2); strArray(1,1) = String('one'); strArray(1,2) = String('two'); strArray(2,1) = String('three'); strArray(2,2) = String('four');
Преобразуйте каждый массив в массив ячеек. Можно использовать cellArray
в функциях MATLAB.
cellArray = {cell(dblArray),cell(ptArray),cell(strArray)}
cellArray = 1×3 cell array {1×10 cell} {3×1 cell} {2×2 cell}
Каждая камера содержит массив другого типа. Отображение содержимого.
cellArray{1,1} % Array of type double
ans = 1×10 cell array [7] [14] [21] [28] [35] [42] [49] [56] [63] [70]
cellArray{1,2} % Array of type Java.awt.Point
ans = 3×1 cell array [1×1 java.awt.Point] [1×1 java.awt.Point] [1×1 java.awt.Point]
cellArray{1,3} % Array of type char array
ans = 2×2 cell array 'one' 'two' 'three' 'four'