我在user.java
public class User(){
string fname;
string lname;
string email;
public User(){
this.fname = randomCharGenMethod();
this.lname = randomCharGenMethod();
this.email = randomCharGenMethod();
}
}
在另一个java类中,我创建了以下对象。
static User user1 = new User();
static User user2 = new User();
当我继续创建对象时,它们都具有相同的fname
,lname
和email
。
实际上,我希望它们具有唯一的fname
,lname
和email
,因为它们是从字符串生成方法生成的
答案 0 :(得分:1)
是否有任何特定原因将User1,User2声明为静态?处理静态变量时,您应该记住它们是在实例之前加载它们的值。
考虑这段代码,作为一个更简单的例子:
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和email值,因为它们是在任何实例化之前加载的。
考虑到这一点,也许如果user1,user2不是静态的,它们可以保存单独生成的值。