Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Controlar los datos devueltos desde los métodosJava

Si un método devuelve un tipo de datos primitivo, a continuación, convierte los datos, como se muestra en la tabla en.Java®MATLAB®Tipos de retorno primitivos

Si una firma de método especifica un dato devuelto de tipo, a continuación, convierte el tipo real devuelto, como se muestra en la tabla en.Javajava.lang.ObjectMATLABTipos de devoluciónjava.lang.Object

no convierte otros objetos en tipos.MATLABJavaMATLAB Para obtener información sobre el tratamiento de estos datos, consulte.Funciones para convertir objetos a tiposJavaMATLAB

Tipos de retorno primitivos

convierte los datos primitivos devueltos desde un método en tipos que mejor representan los datos al idioma.MATLABJavaMATLAB Esta tabla muestra cómo convierte los datos.MATLAB Para algunos tipos, trata escalar y array devuelve de manera diferente.JavaMATLAB

Tipo de valor devueltoJavaTipo resultante: escalarMATLABTipo resultante: matrizMATLAB

boolean

logical

logical

byte

double

int8

short

double

int16

int

double

int32

long

double

int64

float

double

single

double

double

double

char

char

char

Ejemplo

La firma del método es:java.lang.StringtoCharArray

public char[] toCharArray()

Llame al método en un objeto. convierte la salida en una matriz.StringMATLABchar

str = java.lang.String('hello'); res = str.toCharArray' 
res =    1×5 char array  hello

Tipos de devoluciónjava.lang.Object

Cuando se declara un método para devolver datos de tipo, convierte su valor en función del tipo real devuelto.Javajava.lang.ObjectMATLAB Esta tabla muestra cómo convierte los datos.MATLAB

Tipo realJavaTipo resultante: escalarMATLAB

java.lang.Boolean

logical

java.lang.Byte

double

java.lang.Short

double

java.lang.Integer

double

java.lang.Long

double

java.lang.Float

double

java.lang.Double

double

java.lang.Character

char

java.lang.String

char

No hay ninguna conversión si el argumento Return es una subclase de o una matriz de.ObjectObject El objeto sigue siendo un objeto.Java Sin embargo, si indexa en una matriz devuelta, convierte el valor según la tabla.ObjectMATLAB Para obtener más información, consulte.Convertir elementos de matriz de objetos en tiposMATLAB

Ejemplo

Consulte la firma siguiente para un método.getData

java.lang.Object getData()

Si devuelve un objeto, a continuación, convierte el valor a.getDatajava.lang.IntegerMATLABdouble

Funciones para convertir objetos a tiposJavaMATLAB

solo convierte los valores devueltos de datos de objeto si la firma del método especifica.MATLABjava.lang.Object Si la firma especifica cualquier otro tipo de objeto, no convierte el valor.MATLAB Por ejemplo, convierte el valor devuelto para esta firma de método:MATLAB

java.lang.Object getData()

Pero no convierte el valor devuelto para este método:MATLAB

java.lang.String getData()

Para convertir datos de objeto a datos, utilice funciones como se describe en estos temas:JavaMATLABMATLAB

Convertir a tipos numéricosMATLAB

Para convertir tipos numéricos en tipos, utilice una función numérica como.JavaMATLABMATLABdouble La acción tomada por la función depende de la clase del objeto que se especifique.double

  • Si el objeto es una instancia de una clase derivada de, a continuación, convierte el objeto a un.java.lang.NumberMATLABMATLABdouble

  • Si el objeto no es una instancia de una clase numérica, a continuación, comprueba la definición de clase para un método. llama a este método para realizar la conversión.MATLABtoDoubleMATLAB

  • Si crea su propia clase, escriba un método para especificar su propia conversión de tipos.toDouble

Nota

Si la clase del objeto no se deriva de y no implementa un método, a continuación, la función muestra un mensaje de error.java.lang.NumbertoDoubledouble

Convertir en cadenasMATLAB

Para convertir objetos y matrices en cadenas o vectores de caracteres, utilice la función o.java.lang.StringMATLABMATLABstringchar

Si el objeto especificado en la función no es una instancia de la clase, a continuación, comprueba su definición de clase para un o un método.MATLABjava.lang.StringMATLABtoStringtoChar Si crea su propia clase, escriba un método o para especificar la conversión de cadena.toStringtoChar

Nota

Si la clase del objeto no es y no implementa un método, la función muestra un mensaje de error.java.lang.StringtoCharchar

Convertir a estructuraMATLAB

Si una clase define nombres de campo, utilice la función para convertir los datos del objeto en una estructura.JavastructMATLAB

Supongamos que se llama a un método que devuelve un objeto.Javajava.awt.Polygon La clase define los campos y.xpointsypoints Para ejecutar este ejemplo, cree una variable.polygon

polygon = java.awt.Polygon([14 42 98 124],[55 12 -2 62],4);

Convierta el objeto en una estructura y visualice las coordenadas x, y para el tercer punto.

pstruct = struct(polygon) 
pstruct =     struct with fields:      npoints: 4     xpoints: [4×1 int32]     ypoints: [4×1 int32]

Convertir a matriz de celdasMATLAB

Si los métodos devuelven distintos tipos de datos, utilice la función para convertir los datos en tipos.JavacellMATLAB Los elementos de la matriz de celdas resultante se convierten según las tablas y.Tipos de retorno primitivosTipos de devoluciónjava.lang.Object

Suponga que llama a métodos que devuelven argumentos de tipo, y.Javajava.lang.Doublejava.awt.Pointjava.lang.String Para ejecutar este ejemplo, cree variables de estos tipos.

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'); 

Convierta cada matriz en una matriz de celdas. Puede utilizar en funciones.cellArrayMATLAB

cellArray = {cell(dblArray),cell(ptArray),cell(strArray)} 
cellArray =    1×3 cell array      {1×10 cell}    {3×1 cell}    {2×2 cell}

Cada celda contiene una matriz de un tipo diferente. Mostrar el contenido.

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' 

Temas relacionados