Java me OutOfMemory错误,请使用lwuit

Java me OutOfMemory错误,请使用lwuit,java-me,lwuit,out-of-memory,lwuit-form,lwuit-button,Java Me,Lwuit,Out Of Memory,Lwuit Form,Lwuit Button,我的表格上有一些按钮。当我点击每个按钮时,用相同的按钮运行新表单。当我多次单击时,显示ErrorOutofMemory。 我想这是因为我创建了很多表单对象。 如果有表单,可以清除堆栈或从堆栈中使用表单?您的代码需要使用单例模式。在单例模式中,它将只创建表单类的一个对象。如果对象为null,那么它将创建一个新对象,否则它将返回当前对象。请参考以下代码 // Private Constructor private static myForm thisForm = null; private my

我的表格上有一些按钮。当我点击每个按钮时,用相同的按钮运行新表单。当我多次单击时,显示ErrorOutofMemory。
我想这是因为我创建了很多表单对象。

如果有表单,可以清除堆栈或从堆栈中使用表单?

您的代码需要使用单例模式。在单例模式中,它将只创建表单类的一个对象。如果对象为null,那么它将创建一个新对象,否则它将返回当前对象。请参考以下代码

// Private Constructor

private static myForm thisForm = null;

private myForm()
{
     thisForm = this;
}

// Now to Create Object, you need to create following getInstance Method

public static myForm getInstance()
{
         if ( thisForm == null ) 
         {
                thisForm = new myForm();
         }
         return thisForm;
}

在整个代码中尝试上述逻辑。OutOfMemory问题将100%得到解决。

您的代码需要使用单例模式。在单例模式中,它将只创建表单类的一个对象。如果对象为null,那么它将创建一个新对象,否则它将返回当前对象。请参考以下代码

// Private Constructor

private static myForm thisForm = null;

private myForm()
{
     thisForm = this;
}

// Now to Create Object, you need to create following getInstance Method

public static myForm getInstance()
{
         if ( thisForm == null ) 
         {
                thisForm = new myForm();
         }
         return thisForm;
}

在整个代码中尝试上述逻辑。您的OutOfMemory问题将100%得到解决。

您保留了指向旧组件的指针(引用),这将导致内存泄漏。确保永远不要将组件存储为类的成员,除非以后清除它们。

您保留了指向旧组件的指针(引用),这会导致内存泄漏。确保永远不要将组件存储为类的成员,除非稍后清除它们。

我不知道如何进一步解释这一点。如果在类(成员字段)中保留一个指向某个组件的变量,则会出现内存泄漏(例如指向上一个窗体的指针指向上一个窗体等)。我不知道如何进一步解释这一点。如果在类(成员字段)中保留一个指向某个组件的变量,则会出现内存泄漏(例如指向上一个窗体的指针指向上一个窗体等)。