使用默认的变量初始化自动生成构造函数

时间:2011-11-19 15:47:27

标签: java eclipse

这可能是一个超级蹩脚的懒惰问题。

是否可以在Eclipse中生成构造函数,如

class A{
    int a;
    String b;
    float c;

    /* Is it possible to auto-generate this*/
    public A() {
        a = 0;
        b = "";
        c = 0f; 
    }
 }

我知道默认初始化会在任何情况下处理这个问题,但我需要像这样自动生成的代码,以便我可以将say int的默认值更改为5并将其浮动为3等等。

如果这不可用,则下一个最佳选项是使用字段生成构造函数,然后将其转换为此。

4 个答案:

答案 0 :(得分:2)

要实现此目的,请在声明时设置字段:

class A{
    int a = 9;
    String b = "";
    float c = 0f;

答案 1 :(得分:1)

您可以在字段声明中更改默认值:

class A {
  private int a = 3;
  private String b = "asdf";
  private float c = 3;
  ...
}

但如果您希望 clients 提供值,那么最好接受它们作为构造函数参数:

public A() { } // default constructor will use the values in the fields
public A(int a, String b, int c) {
  this.a = a;
  this.b = b;
  this.c = c; 
}

答案 2 :(得分:1)

我认为没有。因为,正如你所说,你不需要它。无论如何,基元都被初始化 - 如果你想改变它们,那就这样做。 eclipse无法知道非原语的默认值是什么。

答案 3 :(得分:1)

您尝试实现的目标没有直接的方法,但是有一种方法可以根据您班级中的字段自动生成构造函数。

在Eclipse中,转到...

  

源/使用字段生成构造函数...

...然后您可以选择要初始化的字段,然后更改构造函数的默认值和参数。

  

注意:对于您的解决方案,请选择要初始化的字段,然后将其从构造函数的参数中删除,这样它就会变为没有参数的构造函数

有关详细信息,请访问此链接。 http://www.eclipseonetips.com/2010/03/08/generate-class-constructors-in-eclipse-based-on-fields-or-superclass-constructors/