2011-11-19 59 views
2

这可能是一个超级懒惰的懒惰问题。使用变量的默认初始化自动生成构造函数

是否有可能在Eclipse中产生的构造像

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

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

我知道,默认初始化会无论如何照顾这,但我需要一个像这样的代码自动生成的,这样我可以更改默认例如int的值为5,float等于3等等。

如果不可用,则下一个最好的办法是使用字段,然后将其转换为这个生成构造函数。

+1

如果你总得去改变所有的价值,创造它自己会那么快。请注意,a和c的初始化在这里是可重用的,但不是b(String的默认值为null,不是“”)。 –

回答

2

要做到这一点,当你宣布他们设置字段:

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

您可以在现场更改默认值声明

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

但是,如果你指望客户提供值,那么它能够更好地接受他们的构造函数的参数:

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; 
} 
1

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

1

没有直接的方法为你想达到什么样的,但是是有一种方法,根据您的类中的字段自动生成构造函数。

在Eclipse中,转到...使用字段

源/生成构造...

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

注意:为了您的解决方案中,选择要初始化,然后从构造函数的参数删除它们的领域,因此,它将成为构造不带参数

欲了解更多信息,请访问此链接。 http://www.eclipseonetips.com/2010/03/08/generate-class-constructors-in-eclipse-based-on-fields-or-superclass-constructors/

相关问题