程序示例大概是这样的: public class myFrame extends JFrame { private MyPanel mypanel; public dosomething() {
mypanel = new MyPanel( int p, int q);
} //...........else
}
现在我在程序运行的过程,如果多次的调用dosomething,那知就会生成多个mypanel对象,而且同时存在,请问有什么方法能只存在一个实例吗?也就是说生成一个新对象的同时,要消灭旧对象 程序中肯定要多次调用dosomething., 而且有不同参数的q和q,要生成不同的对象。 请问那位大侠知道怎么实现吗?
mypanel = new MyPanel( int p, int q);
} //...........else
}
现在我在程序运行的过程,如果多次的调用dosomething,那知就会生成多个mypanel对象,而且同时存在,请问有什么方法能只存在一个实例吗?也就是说生成一个新对象的同时,要消灭旧对象 程序中肯定要多次调用dosomething., 而且有不同参数的q和q,要生成不同的对象。 请问那位大侠知道怎么实现吗?
当然 ,setvisible肯定不行,因为我还要显示
我看了贵人的代码,如果多次dosomething方法,那new MyPanel( int p, int q)将是一块垃圾内存,只有最后一次引用的new MyPanel( int p, int q); 才是被作且的。规则如:
MyPanel mypanel;
mypanel = new MyPanel( int p, int q); 第一次调用dosomething
mypanel = new MyPanel( int p, int q); 第二次调用dosomething,第一次引用的new MyPanel没有被作用mypanel = new MyPanel( int p, int q); 第三次调用dosomething,第一次和第二次的new MYPanel没有被作用。
没有被引用的内存将是垃圾,系统自动收回。。
代码:system.gc()回收。