处理返回的数据Java方法
如果一个Java®方法返回一个原始数据类型,然后是MATLAB®转换数据,如表所示原始的返回类型。
如果一个Java方法签名指定返回的数据类型java . lang . object
,然后MATLAB将返回的实际类型,如表所示java . lang . object返回类型。
MATLAB没有其他Java对象转换为MATLAB类型。处理这些数据的信息,请参阅MATLAB函数来将Java对象转换为类型。
原始的返回类型
MATLAB将从Java方法返回原始数据转换成类型最能代表数据的MATLAB语言。此表显示了MATLAB转换数据。对于一些Java类型,MATLAB对标量和数组返回不同。
Java返回类型 | 产生的MATLAB -标量类型 | 产生的MATLAB类型,数组中 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例子
的签名以
方法toCharArray
是:
公共char [] toCharArray ()
调用方法字符串
对象。MATLAB将输出转换为字符
数组中。
str =以(“你好”);res = str.toCharArray '
res = 1×5 char数组你好
java . lang . object
返回类型
当一个Java方法声明返回的数据类型java . lang . object
,MATLAB将其价值取决于实际的返回类型。此表显示了MATLAB转换数据。
实际的Java类型 | 产生的MATLAB -标量类型 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
没有转换,如果返回的参数是一个子类对象
或数组对象
。的对象仍然是一个Java对象。然而,如果你返回的索引对象
数组,MATLAB将根据表的价值。有关更多信息,请参见将对象数组元素转换为MATLAB类型。
例子
请参考下面的签名getData
方法。
java . lang . objectgetData()
如果getData
返回一个java.lang.Integer
对象,然后用MATLAB转换价值双
。
功能转换Java对象MATLAB类型
MATLAB只将对象数据如果方法签名指定返回值java . lang . object
。如果签名指定任何其他对象类型,然后用MATLAB不转换值。例如,用MATLAB对该方法返回值转换签名:
java . lang . objectgetData()
但MATLAB并不把这个方法的返回值:
以getData()
MATLAB数据转换为Java对象的数据,使用MATLAB函数中描述这些主题:
转换为MATLAB数值类型
将Java数值类型转换为MATLAB类型,使用数字MATLAB函数双
。所采取的行动双
功能取决于您所指定的类的对象。
如果对象是一个类的实例来自
java.lang.Number
,然后MATLAB将对象转换为MATLAB双
。如果对象不是一个数字类的一个实例,然后MATLAB检查的类定义
toDouble
方法。MATLAB调用这个方法来执行转换。如果你创建你自己的类,然后写一个
toDouble
方法来指定自己的类型转换。
请注意
如果没有派生类对象的java.lang.Number
它没有实现toDouble
方法,然后双
函数显示一条错误消息。
转换为MATLAB字符串
转换以
对象和数组MATLAB字符串或字符向量,使用MATLAB字符串
或字符
函数。
如果指定的对象在MATLAB函数不是的一个实例以
类,然后用MATLAB检查它的类定义toString
或者一个toChar
方法。如果你创建你自己的类,然后写一个toString
或toChar
方法指定字符串转换。
请注意
如果类的对象不是以
它没有实现toChar
方法,然后字符
函数显示一条错误消息。
转换为MATLAB结构
如果一个Java类定义字段名称,然后使用结构体
MATLAB函数来将对象数据转换成结构。
假设你叫一个返回的Java方法java.awt.Polygon
对象。类定义的字段xpoints
和ypoints
。运行这个示例中,创建一个多边形
变量。
多边形= java.awt。多边形([14 42 98 124],[55 12 2 62],4);
将对象转换为一个结构和显示x, y坐标,第三点。
pstruct =结构(多边形)
pstruct =结构体字段:npoints: 4 xpoints: [4×1 int32] ypoints: [4×1 int32]
转换为MATLAB单元阵列
如果您的Java方法返回不同类型的数据,然后使用细胞
函数将数据转换为MATLAB类型。产生的单元阵列元素的转换原始的返回类型和java . lang . object返回类型表。
假设您调用Java方法的返回类型的参数java.lang.Double
,java.awt.Point
,以
。运行这个示例中,创建这些类型的变量。
进口. lang . *java.awt。*%创建一个Java数组的两倍dblArray = javaArray (“java.lang.Double”1 10);为m = 1:10 dblArray(1米)=双(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) =字符串(“一个”);strArray(1、2) =字符串(“两个”);strArray(2, 1) =字符串(“三”);strArray(2, 2) =字符串(“四”);
每个数组转换成一个细胞数组。您可以使用cellArray
在MATLAB函数。
cellArray ={细胞(dblArray)细胞(ptArray)细胞(strArray)}
cellArray = 1×3单元阵列{1×10细胞}{3×1细胞}{2×2细胞}
每个单元有不同类型的数组。显示内容。
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单元阵列[1×1 java.awt。点][1×1 java.awt.Point][1×1 java.awt.Point]
cellArray {1,3}%数组类型的字符数组
ans = 2×2单元阵列的一个“两个”“三”“四”