tipos - que es un constructor java
¿Se llama al constructor de objetos cuando se crea una matriz en Java? (5)
En Java, una matriz ES UN Objeto. Mi pregunta es ... ¿se llama un constructor de Objetos cuando se están creando nuevas matrices? Nos gustaría utilizar este hecho para instrumentar el constructor de Objetos con un bytecode adicional que verifica la longitud de la matriz que se está construyendo. Funcionaría eso?
En lo que respecta a la Especificación del lenguaje Java, aunque ambos usan la palabra clave new
, las expresiones de creación de instancia de clase y las expresiones de creación de matriz son diferentes formas de expresión, cada una con sus propias reglas. La descripción de Array Creation Expressions no menciona llamar a un constructor.
No lo creo porque no se puede derivar una matriz nativa para anular el constructor
Puede utilizar la manipulación de código byte para colocar el cheque donde se cree una nueva matriz.
Según la especificación de JVM : "Las matrices se crean y manipulan usando un conjunto distinto de instrucciones". Por lo tanto, aunque las matrices son instancias de objetos, no se inicializan de la misma manera que otros objetos (que puede ver si se desplaza hacia arriba desde ese enlace).
Nop. Encontré esto en la lista de correo de AspectJ: http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg02975.html .
Probablemente pregunte acerca de las matrices por algún motivo, pero si puede, ¿por qué no cambiar a las clases de recopilación? Eso le dará muchas oportunidades de interceptar y hacer validaciones.