2017-06-05 19 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

谢谢:) 我能够修复 –

相关问题