如何在Java中重置当前对象?

 jack2502937407 发布于 2023-02-12 19:07

如果我有一个类型为Foo的对象myObject,而在myObject中,有没有办法重置自己并再次运行构造函数?

我知道以下内容不起作用,但可能有助于表达这一想法.

this = new Foo();

dasblinkenli.. 14

无法在现有实例上再次运行构造函数.但是,您可以组织代码,以便以最少的工作量重置,如下所示:

public class MyClass {
    public MyClass() {
        reset();
    }
    public void reset() {
        // Setup the instance
        this.field1 = ...
        this.field2 = ...
    }
}

注意:您的reset方法需要设置所有字段,而不仅仅是您通常在构造函数中设置的字段.例如,您的构造函数可以依赖于引用字段的默认初始化null和数字字段为零; 您的reset方法需要明确地设置它们.

2 个回答
  • 无法在现有实例上再次运行构造函数.但是,您可以组织代码,以便以最少的工作量重置,如下所示:

    public class MyClass {
        public MyClass() {
            reset();
        }
        public void reset() {
            // Setup the instance
            this.field1 = ...
            this.field2 = ...
        }
    }
    

    注意:您的reset方法需要设置所有字段,而不仅仅是您通常在构造函数中设置的字段.例如,您的构造函数可以依赖于引用字段的默认初始化null和数字字段为零; 您的reset方法需要明确地设置它们.

    2023-02-12 19:10 回答
  • 最好设置null或使用新的Object()

    obj = null;
       or
    obj = new Object();
    

    垃圾收集器最终会清除对象

    2023-02-12 19:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有