Pregunta

En Java, una matriz ES UN Objeto. Mi pregunta es ... ¿se llama a un constructor de objetos cuando se crean nuevas matrices? Nos gustaría utilizar este hecho para instrumentar el constructor de objetos con algún bytecode adicional que verifique la longitud de la matriz que se está construyendo. ¿Funcionaría eso?

¿Fue útil?

Solución

En lo que respecta a la Especificación del lenguaje Java, aunque ambos usan la palabra clave new , Expresiones de creación de instancia de clase y Expresiones de creación de matriz son diferentes formas de expresión, cada una con sus propias reglas. La descripción de las expresiones de creación de matriz no menciona llamar a un constructor.

Otros consejos

Por la especificación JVM : "Las matrices se crean y manipulan utilizando un conjunto distinto de instrucciones". Entonces, si bien las matrices son instancias de Objetos, no se inicializan de la misma manera que otros objetos (lo que puede ver si se desplaza hacia arriba desde ese ancla de enlace).

No lo creo porque no puede derivar una matriz nativa para anular el constructor

Puede utilizar la manipulación de código de bytes para colocar el cheque donde se cree una nueva matriz.

No. 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 alguna razón, pero si puede, ¿por qué no cambiar a las clases de colección? Eso le dará muchas oportunidades para interceptar y hacer validaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top