java - java - 如何通过使用函数在Java中使用faker来使用不同的数据?
问题描述
我在 Java 中使用 faker ( https://mvnrepository.com/artifact/com.github.javafaker/javafaker/0.2 ) 并且在使用函数循环生成不同数据时遇到问题。这是我的代码:
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方法/函数中生成具有不同计数和组合的名字、姓氏,但由于伪造者只被调用一次,它作为参数传递,我得到了相同的数据集。
我不想在generateData方法中调用generateNames的内容,因为如果我想添加更多组合,那么如果添加了更多案例,我必须复制粘贴每个开关案例中的所有内容。任何帮助表示赞赏。谢谢。
解决方案
推荐阅读
- javascript - 如何使用按钮更改文本颜色
- php - Composer 在尝试解决依赖关系时崩溃
- linux - 如何在 NCDU 命令中排除特定目录
- delphi - 设置 Form Parent 会导致控件处于非活动状态
- python - 将 HOCR 输出转换为字符串(用于正则表达式)的策略是什么?
- docker - 无法连接到远程 Ubuntu 服务器上运行的 elasticsearch 或 kibana
- javascript - Javascript 画布 - 从加载的 4 波段 RGB 图像中删除 alpha 到 3 波段 JPEG 图像?
- javascript - Google Map-SDK:多边形不会出现在 Android 设备上
- android - 在 Ionic 4 应用程序中进行的 API 调用无法在 Android 设备上运行
- c++ - 构造模板化元组类型