仅在需要时创建Java对象?

时间:2013-03-22 04:12:46

标签: java object ram

为了节省RAM,我想在需要时创建类,然后再重复使用。

我的课是这样的:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Engine implements ActionListener {

    JFileChooser fileChooser = new JFileChooser();
    Boolean addWindow = false;

    Engine(){}

    //@ void actionPerformed()
    public void actionPerformed(ActionEvent evt){

        if ( evt.getActionCommand().equals("add") ) {
            if ( addWindow = false ) {
                Add Add = new Add();
                Add.setVisible(true);
            }
            else Add.setVisible(true);
        }
    }
}

(只是项目的一个类别)

我认为这只是一个愚蠢的错误,但我无法理解。

但如果我尝试编译就说:

  

Engine.java:21:错误:非静态方法setVisible(boolean)不能   从静态上下文引用:else Add.setVisible(true); (标记   在Add和setVisible()之间。)

我不想每次都重新创建Add类。如果已经创建,只需重复使用。

1 个答案:

答案 0 :(得分:3)

Add add = new Add();
if ( addWindow == false ) { //Thanks to @TofuBeer's comment. I didn't notice this at all.         
    add.setVisible(true);
}
else
    add.setVisible(true);

由于您正在使用Add(这是类本身的名称),因此它试图静态地调用该方法,这会导致错误,因为它不是您类中的静态方法{ {1}}。

使用您创建的实例来调用方法,并确保实例名称不是类名(类名称为大写Add)。

添加 - 班级名称

添加 - 实例名称(如果您在此处也提供A,则会考虑类名而不是实例名称。)