Main Content

Pasar datos a métodosJava

Escriba a asignación de tipoMATLABJava

Al pasar datos como argumentos a métodos, convierte los datos en tipos que mejor representan los datos al idioma.MATLAB®Java®MATLABJava Para obtener información sobre la asignación de tipos al pasar datos a argumentos de tipo, vea.java.langPase objetosJava

Cada fila de la tabla siguiente muestra un tipo seguido de las coincidencias de argumentos posibles, de izquierda a derecha en orden de cercanía de la coincidencia.MATLABJava Los tipos (excepto las matrices de celdas) pueden ser arrays o matrices escalares (1 por 1).MATLAB Los tipos pueden ser valores escalares o matrices.Java

ArgumentoMATLAB

Tipo de parámetro (escalar o matriz) tipos que no sean ObjectJava

Tipo más cercano <———————————————————————> tipo menos cierre

logical

boolean

byte

short

int

long

float

double

double

double

float

long

int

short

byte

boolean

single

float

double

     

uint8
int8

byte

short

int

long

float

double

 

uint16
int16

short

int

long

float

double

  

uint32
int32

int

long

float

double

   

uint64
int64

long

float

double

    

escalar, Vector de caracteres, escalarstring

char

String

      

array, matriz de celdas de vectores de caracteres ver.string

Argumentos de cadena de paso

String[]

      

objeto de tipoJavajClass

de tipoJavaObjectjClass

cualquier superclase dejClass

     

matriz de celdas del objeto

Object[]

      

ObjetoMATLAB

No compatible

      

Cómo afectan las dimensiones de matriz a la conversión

El término significa el número de subnumeros necesarios para abordar los elementos de una matriz.dimension Por ejemplo, una matriz de 5 por 1 tiene una dimensión, ya que indexa elementos individuales mediante un subíndice de matriz.

Al convertir en matrices, maneja la dimensión de una manera especial.MATLABJavaMATLAB Para una matriz, Dimension es el número de cotas no singleton de la matriz.MATLAB Por ejemplo, una matriz de 10 por 1 tiene la dimensión 1. Mientras que, una matriz 1-por-1 tiene la dimensión 0 porque no se puede indexar en un valor escalar. En el código, el número de matrices anidadas determina la dimensión.Java Por ejemplo, tiene la dimensión 2 y tiene la dimensión 0.double[][]double

Si el número de cotas de la matriz coincide con el número de cotas de la matriz, la matriz convertida tiene cotas.JavaMATLABnJavan Si la matriz tiene menos dimensiones, la conversión descarta dimensiones de singleton, comenzando por la primera.Javan La conversión se detiene cuando el número de cotas restantes coincide con el número de cotas de la matriz.Java Si la matriz tiene más de n dimensiones, agrega cotas de singleton finales.JavaMATLAB

Convertir números a argumentos enteros

Al pasar un tipo entero a un método que toma un parámetro entero, la conversión es la misma que la conversión entre tipos enteros.JavaJavaMATLABJava En particular, si el entero está fuera de rango, no encaja en el número de bits del tipo de parámetro. Para los enteros fuera de rango, descarta todos los bits más bajos.MATLABn El valor es el número de bits en el tipo de parámetro.n Esta conversión es diferente de la conversión entre tipos enteros, donde los enteros fuera de rango se convierten al valor máximo o mínimo representado por el tipo de destino.MATLAB

Si el argumento es un número de punto flotante, no lo convierte en un entero de la misma manera que. convierte primero un número de punto flotante en un entero de 64 bits con signo con la parte fraccionada truncada.MATLABJavaMATLAB A continuación, el número se procesa como si fuera un argumento.int64

Un número de punto flotante es demasiado grande para representarse en un entero de 64 bits cuando está (fuera del intervalo comprendido entre-263– 263. En cuyo caso, utiliza las siguientes conversiones:MATLAB

  • , y los valores de parámetro a.intshortbyte0

  • valores de parámetro.longjava.lang.Long.MIN_VALUE

  • y valores.Inf-Inf-1

  • valores.NaN0

Argumentos de cadena de paso

Para llamar a un método con un argumento definido como, pase una cadena o un vector de caracteres. convierte el argumento en un objeto.Javajava.lang.StringMATLABMATLABJavaString También puede pasar un objeto devuelto por un método.StringJava

Si el argumento Method es una matriz de tipo, pase una matriz de cadenas o una matriz de vectores de caracteres. convierte la entrada en una matriz de objetos, con cotas ajustadas como se describe en.StringMATLABJavaStringCómo afectan las dimensiones de matriz a la conversión

Pase objetosJava

Para llamar a un método que tiene un argumento que pertenece a una clase (que no sea), debe pasar un objeto que es una instancia de esa clase. no admite autoboxing, la conversión automática de tipos a tipos.Javajava.lang.ObjectJavaMATLABJavaMATLABJavaObject Por ejemplo, no se convierte a para un parámetro de tipo.MATLABdoublejava.lang.DoubleDouble

Pasarjava.lang.Object

Existe un caso especial cuando el método toma un argumento de la clase.java.lang.Object Puesto que esta clase es la raíz de la jerarquía de clases, puede pasar objetos de cualquier clase en el argumento. convierte automáticamente el argumento al tipo más cercano, que puede incluir el autoboxing de estilo.JavaMATLABJavaObjectJava Esta tabla muestra la conversión.

ArgumentoMATLAB

en PackageJavaObjectjava.lang

logical

Boolean

double

Double

single

Float

Escalarchar

Character

Vector escalar no vacíostring
char

String

uint8
int8

Byte

uint16
int16

Short

uint32
int32

Integer

uint64
int64

Long

matriz de celdas de matriz (no escalar) de vectores de caracteresstring

String[]

ObjetoJava

Argumento sin cambios

matriz de celdas

Object[]

ObjetoMATLAB

No compatible

Pase la matriz de objetos

Para llamar a un método con un argumento definido como o una matriz de, pase una matriz o una matriz de celdas. convierte automáticamente los elementos de matriz de celdas a sus tipos como se describe en la tabla.java.lang.Objectjava.lang.ObjectJavaMATLABMATLABJavaPasarjava.lang.Object Una matriz es una matriz devuelta por un constructor.JavaJava También puede construir una matriz en el uso de la función.JavaMATLABjavaArray

Pasar matriz de celdas de objetosJava

Para crear una matriz de objetos de celda, utilice la sintaxis.JavaMATLAB{a1,a2,...} Se indexa en una matriz de objetos de la forma habitual, con la sintaxis.Javaa{m,n,...} Por ejemplo, cree una matriz de celdas:A

a1 = java.lang.Double(100); a2 = java.lang.Float(200); A = {a1,a2} 
A =    1×2 cell array      [1×1 java.lang.Double]    [1×1 java.lang.Float]

Pase matrices vacías, nulos y valores faltantes

convierte una matriz vacía de la siguiente manera.MATLAB

  • Si el argumento es un vector de caracteres vacío y el parámetro se declara como, a continuación, pasa en un vacío (no) objeto Java.StringMATLABnullString

  • Para todos los demás casos, convierte una matriz vacía en un.MATLABJavanull

Las matrices vacías (-length) permanecen sin cambios.0Java

convierte valores en cadenas.MATLAB<missing>null

Métodos sobrecargados

Al llamar a un método sobrecargado en un objeto, compara los argumentos que se pasan a los argumentos definidos para los métodos.JavaMATLAB En este contexto, el término incluye constructores. determina el método para llamar y convierte los argumentos en tipos según las reglas de conversión.methodMATLABJavaJava Para obtener más información, consulte.Pase la matriz de objetos

Cuando se llama a un método, se asegura de que:JavaMATLAB

  1. El objeto o clase (para un método estático) tiene un método con ese nombre.

  2. La invocación pasa el mismo número de argumentos de al menos un método con ese nombre.

  3. Cada argumento pasado se convierte al tipo definido para el método.Java

Si se satisfacen todas estas condiciones, llama al método.MATLAB

En una llamada a un método sobrecargado, si hay más de un candidato, selecciona el que tiene los argumentos que mejor se ajustan a los argumentos de llamada.MATLAB En primer lugar, rechaza los métodos que tienen tipos de argumento incompatibles con los argumentos pasados.MATLAB Por ejemplo, si el método tiene un argumento, un argumento es incompatible.doublechar

a continuación, selecciona el método con el valor de aptitud más alto, que es la suma de los valores de aptitud de todos sus argumentos.MATLAB El valor de aptitud para cada argumento es la aptitud del tipo base menos la diferencia entre la dimensión de la matriz y la dimensión de la matriz.MATLABJava Para obtener información sobre la dimensionalidad de matrices, consulte.Cómo afectan las dimensiones de matriz a la conversión Si dos métodos tienen la misma aptitud, entonces se elige el primero definido en la clase.Java

Temas relacionados