主要内容

处理返回的数据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类型,数组中

布尔

逻辑

逻辑

字节

int8

int16

int

int32

int64

浮动

字符

字符

字符

例子

的签名方法toCharArray是:

公共char [] toCharArray ()

调用方法字符串对象。MATLAB将输出转换为字符数组中。

str =以(“你好”);res = str.toCharArray '
res = 1×5 char数组你好

java . lang . object返回类型

当一个Java方法声明返回的数据类型java . lang . object,MATLAB将其价值取决于实际的返回类型。此表显示了MATLAB转换数据。

实际的Java类型 产生的MATLAB -标量类型

java.lang.Boolean

逻辑

java.lang.Byte

java.lang.Short

java.lang.Integer

java.lang.Long

java.lang.Float

java.lang.Double

java.lang.Character

字符

字符

没有转换,如果返回的参数是一个子类对象或数组对象。的对象仍然是一个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方法。如果你创建你自己的类,然后写一个toStringtoChar方法指定字符串转换。

请注意

如果类的对象不是它没有实现toChar方法,然后字符函数显示一条错误消息。

转换为MATLAB结构

如果一个Java类定义字段名称,然后使用结构体MATLAB函数来将对象数据转换成结构。

假设你叫一个返回的Java方法java.awt.Polygon对象。类定义的字段xpointsypoints。运行这个示例中,创建一个多边形变量。

多边形= 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单元阵列的一个“两个”“三”“四”

相关的话题