gpt4 book ai didi

java - 如何用java faker创建一个连贯的对象

转载 作者:行者123 更新时间:2023-11-30 01:46:44 25 4
gpt4 key购买 nike

我正在尝试使用 java faker 创建一个对象 user ,并且变量不一致(如果我创建用户名,它可能是 bob 和用户名可能是jhon.smith)

这是我创建假用户的代码:

public static User userRandom() {

User p = new User();
Faker faker = new Faker(new Locale("ES"));

int ramdomN = faker.number().numberBetween(0, 1);
char sex;
if (ramdomN == 0) {
sex = 'M';
} else {
sex = 'F';
}

faker.name().fullName();
p.setEmail(faker.name().username() + "@lucatinder.org");
p.setAge(faker.number().numberBetween(18, 90));
p.setGender(sex);
p.setName(faker.name().fullName());
p.setPassword(faker.lorem().characters(8, 16));

return p;
}

我希望输出是:

email: Elisa@lucatinder.org,
Password: gki5ra4l2v,
name: Elisa Robledo Robledo,
age: 33,
Gender: F, (Female)

但实际输出是:

Email: Elisa@lucatinder.org,
Password: gki5ra4l2v,
name: Carlota Robledo Robledo,
age: 33,
Gender: M, (male)

这是错误的,因为在电子邮件姓名中我有不同的名字,Elisa是女性,但性别是男性

最佳答案

您的代码的问题是每次调用faker.name().fullName()都会生成一个新名称。 (此外,faker.name().username() 与任何先前生成的全名没有关系。)

您可以将代码更改为:
(假设每个fullName至少由两部分组成,以空格分隔)

String fullName = faker.name().fullName();
String firstName = fullName.substring(fullName.indexOf(' '));

p.setEmail(firstName + "@lucatinder.org");
p.setAge(faker.number().numberBetween(18, 90));
p.setGender(sex);
p.setName(fullName);
p.setPassword(faker.lorem().characters(8, 16));

但是,这并不能解决您的性别问题,因为这似乎不是受支持的功能。
检查此相关 issue在 github 项目上。

无论您尝试如何处理生成的数据,如果性别与姓名不匹配(通常)应该不会有问题。

关于java - 如何用java faker创建一个连贯的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57680255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com