【问题标题】:how to generate constructors in eclipse如何在eclipse中生成构造函数
【发布时间】:2011-03-29 22:20:30
【问题描述】:

我有一个类 A 并且 BM 扩展了 A。现在我想要使用 eclipse 的代码生成选项创建一个 B 的构造函数,它接受参数并设置 B 的所有字段的值(我的意思是它还应该设置从 A 继承的字段)。

有什么捷径可以在eclipse中生成这样的代码吗?

【问题讨论】:

    标签: java eclipse code-generation


    【解决方案1】:

    Eclipse (3.5) 没有针对这种特殊情况的内置选项,但无论如何我建议您在超类中有一个单独的构造函数,子类通过super(...) 调用它在它的构造函数中。

    这会更容易维护。例如,如果您在超类中添加一个文件,您需要记住也要更新子类。

    class A {
        int i;
        public A(int i) { this.i = i; }
    }
    
    class B extends A {
        int j;
        public B(int i, int j) {
            super(i);
            this.j = j;
        }
    }
    

    【讨论】:

      【解决方案2】:

      在编辑器中右击,点击“Source -> Generate Constructor using Fields”。您可以选择要使用的超级构造函数,也可以选择要添加到构造函数的实例变量。

      【讨论】:

      • 但它不会为超类的公共/受保护成员生成初始化,我想这是 OP 所追求的。
      • @aioobe - 同意,这是 akshays 问题的主要观点。
      【解决方案3】:

      没有自动的方法可以做到这一点,我几乎相信 eclipse 团队是故意这样做的,因为它会导致糟糕的设计。

      构造一个类只是关于初始化对象拥有字段。如果需要在超类上设置(init)字段,调用超类构造函数,如果需要更改超类字段,调用超类getter和setter方法。

      对我来说,初始化超类字段的设计很糟糕,可以很容易地避免。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-30
        • 2013-07-13
        • 1970-01-01
        • 2018-12-04
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多