簡體   English   中英

自動生成具有默認變量初始化的構造函數

[英]Auto generate constructor with default initialization of variables

這可能是一個超級-懶的問題。

是否有可能在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,將float更改為3,依此類推。

如果不可用,則下一個最佳選擇是使用字段生成構造函數,然后將其轉換為該值。

為此,請在聲明它們時設置字段:

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

您嘗試獲得的結果沒有直接的方法,但是是的,有一種方法可以根據類中的字段自動生成構造函數。

在Eclipse中,轉到...

使用字段源/生成構造函數...

...然后您可以選擇要初始化的字段,然后更改構造函數的默認值和參數。

注意:對於您的解決方案,請選擇要初始化的字段,然后將它們從構造函數的參數中刪除,這樣它將成為沒有參數的構造函數

有關更多信息,請訪問此鏈接。 http://www.eclipseonetips.com/2010/03/08/generate-class-constructors-in-eclipse-based-on-fields-or-superclass-constructors/

您可以在字段聲明中更改默認值:

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

我認為沒有。 因為,正如您所說,您不需要它。 無論如何,原語都會初始化為-如果要更改它們,請這樣做。 而且eclipse不能知道非基元的默認值是多少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM