Этот пример показывает, как вызвать метод класса java.util.ArrayList. Пример демонстрирует то, что это означает иметь объекты Java® как ссылки в MATLAB®.
Класс java.util.ArrayList является частью библиотек стандарта Java. Поэтому класс уже находится на пути к классу Java. Если вы вызываете метод в классе, который не находится в стандартной библиотеке, то обновите путь к классу Java так, чтобы MATLAB мог найти метод. Для получения информации смотрите Путь к классу Java.
Создайте объект ArrayList при помощи одного из конструкторов класса. Отобразите методы класса и ищите записи ArrayList в окне методов.
methodsview('java.util.ArrayList')ArrayList (java.util.Collection) ArrayList ( ) ArrayList (int)
Выберите синтаксис ArrayList(), который создает пустой список с начальной способностью 10.
Используйте функцию import, чтобы относиться к классу ArrayList, не указывая, что целый пакет называет java.util.
import java.util.ArrayListСоздайте пустой объект ArrayList.
A = ArrayList;
Добавьте элементы к объекту ArrayList. Посмотрите в окне методов на подписи для метода add.
void add (int,java.lang.Object) boolean add (java.lang.Object)
Выберите синтаксис boolean add(java.lang.Object). Аргумент java.lang.Object является типом Java. Чтобы найти соответствующий тип MATLAB, посмотрите на Java Передачи. Таблица lang.Object. Если вы передаете аргумент double, MATLAB преобразовывает его в тип java.lang.Double.
Добавление элементов к ArrayListЧтобы вызвать метод add, используйте синтаксис MATLAB.
add(A,5); A
A = [5.0]
Также используйте синтаксис Java.
A.add(10); A
A = [5.0, 10.0]
Чтобы наблюдать поведение копирования объектов Java, присвойте A новому переменному B.
B = A;
B является ссылкой на A. Любое изменение в объекте, на который ссылается B также, изменяет объект в A. Или код MATLAB или код Java могут изменить объект. Например, добавьте значение к B, и затем отобразите A.
add(B,15); A
A = [5.0, 10.0, 15.0]
Использование объекта ArrayList в MATLABПредположим, что вы вызываете метод Java, который возвращает объект Java типа ArrayList. Если вы вызвали команды в предыдущих разделах, переменный A содержит следующие значения:
class(A)
ans =
'java.util.ArrayList'
A
A = [5.0, 10.0, 15.0]
Чтобы использовать A в MATLAB, преобразуйте объект или в тип java.lang.Object или в тип примитива. Затем примените cell MATLAB и функции cell2mat.
Из окна методов ArrayList найдите метод toArray, который преобразовывает ArrayList в java.lang.Object[] .
java.lang.Object[] toArray (java.lang.Object[])
Преобразуйте A в java.lang.Object .
res = toArray(A)
res =
java.lang.Object[]:
[ 5]
[10]
[15]Преобразуйте вывод в тип MATLAB.
res = cell(res)'
res =
1×3 cell array
[5] [10] [15]Чтобы преобразовать это значение в матрицу, элементы должны быть тем же типом. В этом примере значения преобразовывают, чтобы ввести double.
data = cell2mat(res)
data =
5 10 15