Java 如何正确编码以在单独的对象中保持唯一属性
我在Java 如何正确编码以在单独的对象中保持唯一属性,java,object,attributes,unique,Java,Object,Attributes,Unique,我在user.java public class User(){ string fname; string lname; string email; public User(){ this.fname = randomCharGenMethod(); this.lname = randomCharGenMethod(); this.email = randomCharGenMethod(); } } 在另
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
,因为它们是从字符串生成方法生成的是否有任何特定的原因将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不是静态的,那么它们可以保存单独生成的值 我想我们还需要看看
randomCharGenMethod
源代码,它可以很好地工作公共静态字符串randomCharGenMethod(){return RandomStringUtils.randomAlphabic(5);}如果使用String
,这个编译过程如何?是自定义类型吗?我使用了字符串很抱歉输入错误,我不能确定,因为您没有共享randomCharGenMethod()
,但我猜这是您的问题