¿Es posible construir una clase parametrizada en Matlab? Por ejemplo, en Java podría decir ArrayList<String> myList = new ArrayList<String>()
. He intentado myList = java.util.ArrayList<String>()
, pero eso solo da un error que dice "paréntesis o paréntesis inesperados". Realmente estoy buscando usar mis propias clases parametrizadas, pero si puedo obtener la sintaxis para esto, debería ser suficiente.Uso de clases genéricas de Java en Matlab
Respuesta
Usted no puede crear una instancia de una clase Java parametrizada en Matlab. Esto es porque Matlab es un lenguaje interpretado. Por lo tanto, en su ejemplo, cuando intente
myList = java.util.ArrayList<String>()
Matlab interpreta inmediatamente este código y compila el código de Java. Pero como Java tiene Type Erasure, toda la información de tipo de myList se pierde de inmediato. Esto significa que en el contexto de Matlab los parámetros de tipo de sintaxis no tienen sentido, por lo que son sintácticamente inválidos.
No soy especialista en Matlab pero entiendo algo en Java.
- Generics son compatibles desde java 5
- genéricos son función de tiempo de compilación. También se les llama "borrones".
Esto significa que
- Comprobar que está instalado Java en su sistema y usada por MATLAB. ¿Probablemente está configurado para usar Java 1.4?
- ¿Puedes escribir tu código usando otro IDE (no matlab), compilarlo y luego usarlo en Matlab? Probablemente solucionará tu problema.
En el siguiente enlace, probablemente podría ayudarle: http://www.mathworks.com/support/solutions/en/data/1-1812J/
Su enfoque mencionado en el punto número dos está funcionando. – zellus
Kurt tiene razón, sin embargo, una solución sería definir su propia clase Java que no está parametrizada. public class MyList extends ArrayList<String> { }
. Luego, en Matlab puede escribir myList = MyList()
y obtendrá casi todas las mismas firmas de métodos como ArrayList<String>
.
- 1. Uso de clases genéricas con ObjectDataSource
- 2. Métodos estáticos en clases genéricas?
- 3. C# Métodos de llamada en clases genéricas
- 4. Versiones no genéricas de clases e interfaces genéricas
- 5. Uso de clases de Java en Grails
- 6. El uso de clases abstractas en Matlab (sin propiedades)
- 7. ¿Usos para clases genéricas estáticas?
- 8. operador como y clases genéricas
- 9. select_related() en vistas genéricas basadas en clases
- 10. fábrica para crear clases genéricas
- 11. contraints genéricas en las clases derivadas
- 12. Type.GetType no funciona en clases genéricas?
- 13. Convención para nombres de archivo de clases genéricas
- 14. Uso de comodines en la ruta de clases de Java
- 15. Crear clases dinámicamente en matlab
- 16. Cambios en el acceso de las variables para las clases genéricas en Java 7
- 17. Uso de ASP.NET MVC con vistas genéricas
- 18. Java Collections.checked *() versus colecciones genéricas
- 19. Java Play2: ¿plantillas genéricas?
- 20. Java delimitada limitaciones genéricas en los campos
- 21. Extendiendo las clases de vista genéricas para get_context_data común
- 22. Función de Matlab/historial de clases
- 23. C# vs Java - Listas genéricas
- 24. ¿Qué debo nombrar mis archivos con definiciones de clases genéricas?
- 25. Son miembros estáticos de clases genéricas compartidas entre tipos
- 26. ¿Puedo filtrar en request.user cuando uso vistas genéricas de Django?
- 27. ¿El Is.EqualTo de NUnit no funciona de manera confiable para las clases derivadas de clases genéricas?
- 28. El uso de "esto" en cada clase de MATLAB
- 29. Uso de clases parciales
- 30. Argumentos y clases para escribir funciones (genéricas) en R
Ok, tenía miedo de que ese fuera el caso, pero quería asegurarme. – Sam
Entonces, si construyo un ArrayList en matlab, ¿es posible agregarle un objeto matlab? (Cada vez que intento agregar un objeto, obtengo 'Sin método 'add' con la coincidencia de la firma encontrada para la clase 'java.util.ArrayList''). – dinosaur