处理返回的数据Java方法
如果一个Java®方法返回一个基元数据类型,然后是MATLAB®转换数据,如表中所示基本返回类型.
如果Java方法签名指定了类型的返回数据java . lang . object
,然后MATLAB转换实际返回的类型,如表中所示object返回类型.
MATLAB不将其他Java对象转换为MATLAB类型。有关处理此数据的信息,请参见函数转换Java对象到MATLAB类型.
基本返回类型
MATLAB将从Java方法返回的原始数据转换为最能向MATLAB语言表示数据的类型。下表显示了MATLAB如何转换数据。对于某些Java类型,MATLAB对标量返回和数组返回的处理是不同的。
Java返回类型 | 结果MATLAB类型-标量 | 结果MATLAB类型-数组 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例子
的签名以
方法toCharArray
是:
public char[] toCharArray()
调用的方法字符串
对象。MATLAB将输出转换为a字符
数组中。
str = java.lang.String(“你好”);res = str.toCharArray'
Res = 1×5 char数组hello
java . lang . object
返回类型
当Java方法声明为返回类型的数据时java . lang . object
, MATLAB根据返回的实际类型转换其值。下表显示了MATLAB如何转换数据。
实际Java类型 | 结果MATLAB类型-标量 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
的子类,则没有转换对象
或者一个数组对象
.对象仍然是Java对象。但是,如果索引成返回的对象
数组,MATLAB根据表转换值。有关更多信息,请参见将对象数组元素转换为MATLAB类型.
例子
a .请参阅以下签名getData
方法。
java . lang . object getData ()
如果getData
返回一个java.lang.Integer
对象,然后MATLAB将值转换为双
.
要转换的函数Java对象MATLAB类型
MATLAB仅在方法签名指定时转换对象数据返回值java . lang . object
.如果签名指定任何其他对象类型,则MATLAB不转换该值。例如,MATLAB确实转换了这个方法签名的返回值:
java . lang . object getData ()
但是MATLAB不转换此方法的返回值:
以getData ()
若要将Java对象数据转换为MATLAB数据,请使用以下主题中描述的MATLAB函数:
转换为MATLAB数值类型
要将Java数值类型转换为MATLAB类型,请使用MATLAB数值函数,如双
.所采取的行动双
函数取决于所指定对象的类。
派生的类的实例
java.lang.Number
,然后MATLAB将对象转换为MATLAB双
.如果对象不是数值类的实例,则MATLAB检查类定义中的
toDouble
方法。MATLAB调用此方法来执行转换。如果您创建自己的类,则编写
toDouble
方法指定您自己的类型转换。
请注意
如果对象的类没有从java.lang.Number
它没有实现toDouble
方法,则双
函数显示错误消息。
转换为MATLAB字符串
转换以
对象和数组转换为MATLAB字符串或字符向量,使用MATLAB字符串
或字符
函数。
函数中指定的对象如果不是的实例以
类,然后MATLAB检查它的类定义为toString
或者一个toChar
方法。如果您创建自己的类,则编写toString
或toChar
方法指定字符串转换。
请注意
如果对象的类不是以
它没有实现toChar
方法,则字符
函数显示错误消息。
转换为MATLAB结构
如果Java类定义了字段名,则使用结构体
函数将对象数据转换为MATLAB结构。
假设您调用一个Java方法,该方法返回java.awt.Polygon
对象。类定义字段xpoints
而且ypoints
.要运行此示例,请创建一个多边形
变量。
Polygon = java.awt。多边形([14 42 98 124],[55 12 -2 62],4);
将对象转换为结构并显示第三个点的x,y坐标。
Pstruct = struct(多边形)
Pstruct = struct with fields: npoints: 4 xpoints: [4×1 int32] ypoints: [4×1 int32]
转换为MATLAB单元阵列
如果Java方法返回不同类型的数据,则使用细胞
函数将数据转换为MATLAB类型。属性转换生成单元格数组的元素基本返回类型而且object返回类型表。
假设您调用返回类型参数的Java方法java.lang.Double
,java.awt.Point
,以
.要运行此示例,请创建以下类型的变量。
进口. lang . *java.awt。*创建一个double的Java数组dblArray = javaArray(“java.lang.Double”1 10);为dblArray(1,m) = Double(m * 7);结束创建一个点的Java数组ptArray = javaArray(“java.awt.Point”3);ptArray(1) =点(7.1,22);ptArray(2) =点(5.2,35);ptArray(3) =点(3.1,49);创建一个字符串的Java数组strArray = javaArray(“以”2、2);strArray(1,1) = String(“一个”);strArray(1,2) = String(“两个”);strArray(2,1) = String(“三”);strArray(2,2) = String(“四”);
将每个数组转换为单元格数组。你可以使用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}类型为double的数组
ans = 1×10单元阵列[7][14][21][28][35][42][49][56][63][70]
cellArray {1,2}Java.awt.Point类型的数组
Ans = 3×1 cell array [1×1 java.awt。[1×1 java.awt.Point][1×1 java.awt.Point]
cellArray {1,3}% char数组类型的数组
Ans = 2×2单元格数组' 1 ' ' 2 ' ' 3 ' ' 4 '