Tengo media docena de clases que extienden la misma clase abstracta. La clase abstracta tiene una variable estática que apunta a un código JNI que solo quiero cargar una vez por instanciación de las clases.Heredar variable estática de la clase abstracta
Por lo que entiendo, esto da como resultado exactamente una instancia de esta variable estática instanciada, pero lo que quiero es que cada una de las clases tengan su propia instancia estática de la variable que es única para la clase secundaria dada. Quiero escribir un código en mi clase abstracta que modifique y/o libere la clase abstracta. ¿Es posible hacer ambas cosas a la vez?
Así, por ejemplo, puedo escribir una barra de clase abstracta con una variable foo y un método printFoo que imprime el contenido de foo. Luego instanciamos en orden fooBar1, fooBar2 y fooBar3, cada uno de los cuales extiende la clase de barra e inicializa foo a diferentes valores en bloques estáticos. Si llamo al foobar1.printFoo
, quiero imprimir el valor estático de foo inicializado por el constructor fooBar1.
¿Se puede hacer esto en Java?
Por favor, cierre el corchete en su primer párrafo, ¡eso me vuelve loco! – HXCaine
una 'variable estática que apunta a algún código'. ¿Puedes explicar eso un poco más? ¿Cómo señalas el código en Java? – mdma
Estoy usando jocl, que es un contenedor JNI alrededor del código GPU de OpenCL. Para decirle a la GPU qué hacer, uno tiene que crear un programa CL que apunte al código que se ejecutará y a partir de ese generar un cl_kernel que represente el kernel compilado que utilizará la GPU. El programa y las variables del núcleo son los que tengo como estáticos porque lleva demasiado tiempo hacer la compilación justo a tiempo del código de la GPU. Pero quiero, entre otras cosas, un método de publicación de la clase abstracta que se puede usar para lanzar el código. – drew