我有六个类都扩展相同的抽象类。抽象类有一个指向某些JNI代码的静态变量,我只希望每个实例化类都加载一次。从抽象类继承静态变量
从我所了解的结果来看,这个静态变量的实例正好是一个实例,但我想要的是每个扩展类都有自己的变量的静态实例,这个变量对于给定的子类是唯一的。我想在我的抽象类中编写一些修改和/或发布抽象类的代码。是否有可能一次完成这两件事?
所以作为一个例子,我可以用一个变量foo和一个打印foo内容的printFoo方法编写一个抽象类栏。然后我按顺序实例化fooBar1,fooBar2和fooBar3,每个扩展bar类并将foo初始化为静态块中的不同值。如果我打电话foobar1.printFoo
我想打印由fooBar1构造函数初始化的foo的静态值。
这可以在java中完成吗?
请关闭第一段的括号,这让我疯狂! – HXCaine 2011-04-14 18:34:51
“指向某些代码的静态变量”。你能解释一点吗?你如何指向java中的代码? – mdma 2011-04-14 18:57:41
我使用jocl,它是围绕OpenCL GPU代码的JNI包装。要告诉GPU该做什么,必须创建一个指向要运行的代码的CL_program,并从中产生一个表示GPU将使用的已编译内核的cl_kernel。程序和内核变量是我作为静态变量的变量,因为花费很长时间才能对GPU代码进行即时编译。但是,除了其他内容之外,我想要的是一种释放方法,即可用于释放代码的抽象类。 – drew 2011-04-14 19:09:35