我在Java(https://mvnrepository.com/artifact/com.github.javafaker/javafaker/0.2)中使用fakerr,并且在使用函数循环生成其他数据时遇到问题。这是我的代码:
import com.github.javafaker.Faker;
import java.util.ArrayList;
import java.util.LinkedHashMap;
public class DataGenerator{
Faker faker = new Faker();
LinkedHashMap<String,ArrayList<String>> result = new LinkedHashMap<>();
public static void main(String[] args) throws Exception {
generatedata("firstname");
//generatedata("lastname");
for(String key : this.result.keySet())
{
System.out.println(key);
ArrayList<String> al = this.result.get(key);
for(String s : al)
System.out.println(s);
}
}
public void generatedata(String fieldType) throws Exception{
switch (fieldType.toLowerCase()){
case "firstname":
resultdata = generateInvalidData(faker.name().firstName());
break;
case "lastname":
resultdata = generateInvalidData(faker.name().lastName());
break;
}
result.put(fieldType.toLowerCase(), resultdata);
}
public ArrayList<String> generateNames(String fieldType) throws Exception{
ArrayList<String> resultdata = new ArrayList<>();
for (int j = 0; j < 5; j++) {
//valid data
resultdata.add(testData);
//UPPERCASE
resultdata.add(testData.toUpperCase());
}
return resultdata;
}
这里试图在 generateNames 方法/函数中生成具有不同计数和组合的名字,姓氏,但是由于仅调用一次伪造者,并将其作为参数传递,因此会获得相同的数据集。
我不想在 generateata 方法中调用 generateNames 的内容,因为如果我想添加更多组合,则必须复制每种开关情况下的所有内容增加了更多案例。任何帮助表示赞赏。谢谢。