gpt4 book ai didi

java - 仅在需要时创建 Java 对象?

转载 作者:行者123 更新时间:2023-12-01 23:56:16 25 4
gpt4 key购买 nike

为了节省 RAM,我想在需要时创建类,并在以后重用。

我的类(class)是这样的:

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: error: non-static method setVisible(boolean) cannot be referenced from a static context: else Add.setVisible(true); (Marker is at the point between Add and setVisible().)

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

最佳答案

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(这是类本身的名称),它试图静态地调用该方法,这会抛出错误,因为它不是静态方法您的类(class)添加

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

添加 - 类名称

add - 实例名称(如果您也在此处给出Add,它将考虑类名称而不是实例名称)。

关于java - 仅在需要时创建 Java 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15562606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com