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