2017-06-05 24 views
0

我已經在其他的Java類中user.java我怎樣才能正確的代碼,以保持獨特的屬性,在不同的對象

public class User(){ 

    string fname; 
    string lname; 
    string email; 

    public User(){ 
     this.fname = randomCharGenMethod(); 
     this.lname = randomCharGenMethod(); 
     this.email = randomCharGenMethod(); 
    } 
} 

以下結構,我創建了下列對象。

static User user1 = new User(); 
static User user2 = new User(); 

,我就要向前創建的對象,它們都具有相同的fnamelnameemail

其實,我希望他們有獨特的fnamelnameemail,因爲他們從一個字符串生成方法

+1

我認爲,我們需要看到'randomCharGenMethod'源代碼以及 – DaveH

+0

工作正常 公共靜態字符串randomCharGenMethod(){ 回報RandomStringUtils.randomAlphabetic(5); } –

+0

如果你使用'string',這個編譯過程如何?它是一種自定義類型嗎? – anacron

回答

1

是否有用戶1,用戶2被聲明爲static任何具體的原因產生的?當你處理靜態變量時,你應該記住它們是在它們的值之前加載的。

考慮以下代碼,作爲一個簡單的例子:

public class User() { 
static string fname; 
static string lname; 
static string email; 

public User() { 
    this.fname = randomCharGenMethod(); 
    this.lname = randomCharGenMethod(); 
    this.email = randomCharGenMethod(); 
} 
} 

User任何新的實例將分享FNAME,LNAME和電子郵件的相同值,因爲這些是任何實例之前加載。

考慮到這一點,或許如果user1,user2不是靜態的,它們可以保存單獨生成的值。

+1

謝謝:) 我能夠修復 –

相關問題