Если Java® метод возвращает примитивный тип данных, затем MATLAB® преобразует данные, как показано в таблице в примитивных типах возврата.
Если сигнатура метода Java задает возврат данные типа java.lang.ObjectMATLAB преобразует возвращенный фактический тип, как показано в таблице в 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.ObjectMATLAB преобразует его значение в зависимости от фактического возвращенного типа. В этой таблице показано, как 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'